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