administrador.base.orm._result.maqueta_arreglo_registros.21.18.0 - gamboamartin/administrador GitHub Wiki
maqueta_arreglo_registros
Esta función privada se encarga de maquetar un arreglo de registros obtenidos de una consulta SQL. Realiza ajustes en cada registro del arreglo, desencriptando los campos encriptados y generando registros hijos si es necesario.
Signatura
private function maqueta_arreglo_registros(array $campos_encriptados, modelo_base $modelo_base, array $modelos_hijos, PDOStatement $r_sql):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.$r_sql
(PDOStatement): El objeto que contiene los resultados de la consulta SQL.
Retorna
- Tipo:
array
- Descripción: Un arreglo de registros ajustados después de desencriptar los campos y generar los registros hijos si es necesario.
Explicación Detallada
Recorrido de los resultados de la consulta SQL: Se itera a través de los resultados de la consulta SQL utilizando un bucle while.
Ajuste de cada registro: Para cada registro obtenido de la consulta SQL, se ajusta utilizando la función ajusta_row_select() para desencriptar los campos encriptados y generar los registros hijos si es necesario.
Almacenamiento de los registros ajustados: Los registros ajustados se agregan a un nuevo arreglo $new_array.
Retorno del arreglo de registros ajustados: Se devuelve el arreglo $new_array que contiene los registros ajustados.
Ejemplos
// Ejemplo: Maquetar un arreglo de registros obtenidos de una consulta SQL
$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'
]
];
// Suponiendo que $r_sql contiene los resultados de la consulta SQL
$resultados_maquetados = maqueta_arreglo_registros($campos_encriptados, $modelo_base, $modelos_hijos, $r_sql);
if (is_array($resultados_maquetados)) {
// Utilizar el arreglo de registros maquetados
var_dump($resultados_maquetados);
} else {
// Manejar el mensaje de error
echo "Hubo un error al maquetar el arreglo de registros: ";
var_dump($resultados_maquetados);
}
Código de la Función
private function maqueta_arreglo_registros(array $campos_encriptados, modelo_base $modelo_base,
array $modelos_hijos, PDOStatement $r_sql):array{
$new_array = array();
while( $row = $r_sql->fetchObject()){
$row = (array) $row;
$row_new = $this->ajusta_row_select(campos_encriptados: $campos_encriptados,
modelo_base: $modelo_base, modelos_hijos: $modelos_hijos, row: $row);
if(errores::$error){
return $this->error->error(mensaje: 'Error al ajustar rows', data:$row_new);
}
$new_array[] = $row_new;
}
return $new_array;
}