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