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;
    }