administrador.base.orm._result.init_result_base - gamboamartin/administrador GitHub Wiki
init_result_base
Esta función inicializa el resultado base para un modelo, actualizando varios atributos del modelo y retornando un objeto con los datos actualizados. La función toma una consulta SQL, un modelo, el número de registros, un array de nuevos registros y un objeto con totales.
Signatura
private function init_result_base(string $consulta, modelo_base $modelo, int $n_registros, array $new_array, stdClass $totales_rs): stdClass
Parámetros
$consulta (string): La consulta SQL que se ha ejecutado.
$modelo (modelo_base): El modelo base que será actualizado con los nuevos datos.
$n_registros (int): El número de registros obtenidos de la consulta.
$new_array (array): Un array que contiene los nuevos registros obtenidos.
$totales_rs (stdClass): Un objeto que contiene los totales relacionados con los resultados de la consulta.
Retorna
- stdClass: La función devuelve un objeto que contiene los registros, el número de registros, la consulta SQL y los totales.
Explicación Detallada
-
Actualización del modelo:
-
- Se actualizan los atributos del modelo proporcionado:
-
-
- $modelo->registros se establece como $new_array.
-
-
-
- $modelo->n_registros se establece como $n_registros.
-
-
-
- $modelo->sql se establece como $consulta.
-
-
Creación del objeto de datos:
-
- Se crea un nuevo objeto stdClass llamado $data que contiene:
-
-
- registros: los nuevos registros ($new_array).
-
-
-
- n_registros: el número de registros ($n_registros).
-
-
-
- sql: la consulta SQL ($consulta).
-
-
-
- totales: los totales relacionados con los resultados ($totales_rs).
-
-
Retorno del objeto de datos:
-
- Se devuelve el objeto $data con los datos actualizados.
Ejemplos
// Ejemplo de uso de la función init_result_base
// Supongamos que tenemos un modelo base con la siguiente estructura
class modelo_base {
public $registros;
public $n_registros;
public $sql;
}
$consulta = "SELECT * FROM usuarios";
$modelo = new modelo_base();
$n_registros = 10;
$new_array = [
["id" => 1, "nombre" => "Juan"],
["id" => 2, "nombre" => "Ana"],
// ...
];
$totales_rs = new stdClass();
$totales_rs->total = 100;
// Llamada a la función
$resultado = $this->init_result_base($consulta, $modelo, $n_registros, $new_array, $totales_rs);
// El modelo y el objeto de datos se han actualizado
print_r($modelo);
print_r($resultado);
/*
Imprime:
modelo_base Object
(
[registros] => Array
(
[0] => Array
(
[id] => 1
[nombre] => Juan
)
[1] => Array
(
[id] => 2
[nombre] => Ana
)
...
)
[n_registros] => 10
[sql] => SELECT * FROM usuarios
)
stdClass Object
(
[registros] => Array
(
[0] => Array
(
[id] => 1
[nombre] => Juan
)
[1] => Array
(
[id] => 2
[nombre] => Ana
)
...
)
[n_registros] => 10
[sql] => SELECT * FROM usuarios
[totales] => stdClass Object
(
[total] => 100
)
)
*/
Código de la Función
private function init_result_base(string $consulta, modelo_base $modelo, int $n_registros, array $new_array,
stdClass $totales_rs): stdClass
{
$modelo->registros = $new_array;
$modelo->n_registros = $n_registros;
$modelo->sql = $consulta;
$data = new stdClass();
$data->registros = $new_array;
$data->n_registros = $n_registros;
$data->sql = $consulta;
$data->totales = $totales_rs;
return $data;
}