administrador.base.orm._result.ajusta_row_select.21.18.0 - gamboamartin/administrador GitHub Wiki

ajusta_row_select

Esta función privada se encarga de ajustar un array de datos $row después de una consulta SELECT, desencriptando los campos encriptados y generando los registros hijos si es necesario.

Signatura


private function ajusta_row_select(array $campos_encriptados, modelo_base $modelo_base, array $modelos_hijos, array $row): array

Parámetros

  • $campos_encriptados (array): Un array que contiene los nombres de los campos encriptados en la tabla.

  • $modelo_base (modelo_base): Una instancia del modelo base utilizado para generar los modelos de datos hijos.

  • $modelos_hijos (array): Un array asociativo que contiene los modelos hijos a generar, donde cada clave es el nombre del modelo hijo y cada valor es un array de configuración del modelo hijo.

  • $row (array): El array de datos que se ajustará después de la consulta SELECT.

Retorna

  • Tipo: array
  • Descripción: El array $row ajustado después de desencriptar los campos y generar los registros hijos si es necesario.

Explicación Detallada

Desencriptar campos encriptados: Se llama al método asigna_valor_desencriptado() de la clase inicializacion para desencriptar los campos encriptados en el array $row.

Generar registros hijos: Si hay modelos hijos definidos en $modelos_hijos, se llamará a la función genera_registros_hijos() para generar los registros hijos y asignarlos al array $row.

Retorno del array ajustado: Se devuelve el array $row ajustado después de desencriptar los campos y generar los registros hijos si es necesario.

Ejemplos

// Ejemplo: Ajustar un array de datos después de una consulta SELECT
$campos_encriptados = ['campo1', 'campo2'];
$modelo_base = new ModeloBase();
$modelos_hijos = [
    'Hijo1' => [
        'nombre_estructura' => 'hijos',
        'namespace_model' => 'App\\Models'
    ],
    'Hijo2' => [
        'nombre_estructura' => 'hijos2',
        'namespace_model' => 'App\\Models'
    ]
];
$row = ['campo1' => 'valor_encriptado', 'campo2' => 'valor_encriptado', 'id' => 1];
$resultado_ajustado = ajusta_row_select($campos_encriptados, $modelo_base, $modelos_hijos, $row);
if (is_array($resultado_ajustado)) {
    // Utilizar el array ajustado después de la consulta SELECT
    var_dump($resultado_ajustado);
} else {
    // Manejar el mensaje de error
    echo "Hubo un error al ajustar el array de datos: ";
    var_dump($resultado_ajustado);
}

Código de la Función

private function ajusta_row_select(array $campos_encriptados, modelo_base $modelo_base, array $modelos_hijos,
                                       array $row): array
    {
        $row = (new inicializacion())->asigna_valor_desencriptado(campos_encriptados: $campos_encriptados,
            row: $row);
        if(errores::$error){
            return $this->error->error(mensaje: 'Error al desencriptar', data:$row);
        }


        if(count($modelos_hijos)>0) {
            $row = $this->genera_registros_hijos(modelo_base: $modelo_base, modelos_hijos: $modelos_hijos, row: $row);
            if (errores::$error) {
                return $this->error->error(mensaje: "Error en registro",data: $row);
            }
        }
        return $row;
    }