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