administrador.base.orm.columnas.asigna_columna_completa - gamboamartin/administrador GitHub Wiki
asigna_columna_completa
La función asigna_columna_completa es una función privada que asigna y valida los atributos de una columna, completando un array con la información de columnas proporcionada. A continuación, se detalla su funcionamiento y componentes.
Signatura
private function asigna_columna_completa(string $atributo, array $columna, array $columnas_completas): array
Parámetros
$atributo
(string): El nombre del atributo de la columna que se va a asignar y validar.$columna
(array): Un array que contiene la información de la columna, como tipo, nulidad, etc.$columnas_completas
(array): Un array que se va a completar con la información validada de la columna.
Retorna
- Tipo:
array
- Descripción: Retorna el array $columnas_completas con la información de la columna asignada y validada.
Explicación Detallada
-
Validación del Atributo:
-
- Se elimina cualquier espacio en blanco del atributo usando trim.
-
- Si el atributo está vacío después de eliminar los espacios, se retorna un error indicando que el atributo no puede ser vacío.
-
Validación de la Existencia de Claves en la Columna:
-
- Se define un array $keys con las claves que se van a validar en $columna.
-
- Se utiliza la función valida_existencia_keys de la clase validacion para verificar la existencia de las claves Type y Null en $columna.
-
- Si hay un error en la validación (errores::$error), se retorna un error con un mensaje indicando el fallo al validar $columna.
-
Asignación de Clave Key Si No Existe:
-
- Si la clave Key no está definida en $columna, se asigna una cadena vacía a $columna['Key'].
-
Asignación de la Información de la Columna:
-
- Se asigna la información de la columna a $columnas_completas utilizando el nombre del atributo como clave.
-
- Se completa con las claves campo, Type, Key y Null.
-
Retorno del Array Completado:
-
- La función retorna el array $columnas_completas con la información de la columna asignada y validada.
Ejemplos
$atributo = 'nombre';
$columna = array(
'Type' => 'VARCHAR(255)',
'Null' => 'NO',
'Key' => 'PRI'
);
$columnas_completas = array();
// Instancia de la clase que contiene la función asigna_columna_completa
$mi_clase = new MiClase();
$columnas_completas = $mi_clase->asigna_columna_completa($atributo, $columna, $columnas_completas);
print_r($columnas_completas);
/*
Array
(
[nombre] => Array
(
[campo] => nombre
[Type] => VARCHAR(255)
[Key] => PRI
[Null] => NO
)
)*/
Código de la Función
private function asigna_columna_completa(string $atributo, array $columna, array $columnas_completas): array
{
$atributo = trim($atributo);
if($atributo === ''){
return $this->error->error(mensaje: 'Error atributo no puede venir vacio', data: $atributo, es_final: true);
}
$keys = array('Type','Null');
$valida = $this->validacion->valida_existencia_keys(keys: $keys, registro: $columna);
if(errores::$error){
return $this->error->error(mensaje:'Error al validar $columna', data: $valida);
}
if(!isset($columna['Key']) ){
$columna['Key'] = '';
}
$columnas_completas[$atributo]['campo'] = $atributo;
$columnas_completas[$atributo]['Type'] = $columna['Type'];
$columnas_completas[$atributo]['Key'] = $columna['Key'];
$columnas_completas[$atributo]['Null'] = $columna['Null'];
return $columnas_completas;
}