administrador.base.orm._result.asigna_registros_hijo.21.18.0 - gamboamartin/administrador GitHub Wiki

asigna_registros_hijo

Esta función privada se encarga de asignar registros hijos a un array de datos $row, utilizando un modelo base proporcionado y un conjunto de filtros.

Signatura


private function asigna_registros_hijo(array $filtro, modelo_base $modelo_base, string $name_modelo, string $namespace_model, string $nombre_estructura, array $row):array

Parámetros

  • $filtro (array): Un array que representa el filtro a aplicar para recuperar los registros hijos.

  • $modelo_base (modelo_base): Una instancia del modelo base a utilizar para generar el modelo de datos.

  • $name_modelo (string): El nombre del modelo de datos.

  • $namespace_model (string): El namespace del modelo de datos.

  • $nombre_estructura (string): El nombre de la estructura donde se almacenarán los registros hijos en el array $row.

  • $row (array): El array de datos al que se agregarán los registros hijos.

Retorna

  • Tipo: array
  • Descripción: El array $row actualizado con los registros hijos asignados en la estructura especificada por $nombre_estructura.

Explicación Detallada

Validación del modelo: Se llama a la función valida_data_modelo() para validar el nombre del modelo de datos. Si ocurre un error durante este proceso, se devuelve un mensaje de error.

Validación del nombre de la estructura: Se verifica si el nombre de la estructura está vacío. Si lo está, se devuelve un mensaje de error indicando que el nombre de la estructura no puede estar vacío.

Generación del modelo de datos: Se utiliza el modelo base proporcionado para generar una instancia del modelo de datos utilizando el nombre y el namespace especificados.

Aplicación del filtro: Se llama al método filtro_and() del modelo de datos para obtener los registros hijos filtrados según el filtro proporcionado.

Asignación de registros hijos: Los registros hijos obtenidos se asignan al array $row en la estructura especificada por $nombre_estructura.

Retorno del array actualizado: Se devuelve el array $row actualizado con los registros hijos asignados.

Ejemplos

// Ejemplo: Asignar registros hijos a un array de datos
$filtro = ['campo' => 'valor'];
$modelo_base = new ModeloBase();
$name_modelo = 'Hijo';
$namespace_model = 'App\\Models';
$nombre_estructura = 'hijos';
$row = ['id_padre' => 1];
$resultado_actualizado = asigna_registros_hijo($filtro, $modelo_base, $name_modelo, $namespace_model,
                                               $nombre_estructura, $row);
if (is_array($resultado_actualizado)) {
    // Utilizar el array actualizado con los registros hijos
    var_dump($resultado_actualizado);
} else {
    // Manejar el mensaje de error
    echo "Hubo un error al asignar los registros hijos: ";
    var_dump($resultado_actualizado);
}

Código de la Función

private function asigna_registros_hijo(array $filtro, modelo_base $modelo_base, string $name_modelo,
                                           string $namespace_model, string $nombre_estructura, array $row):array{
        $valida = $this->validacion->valida_data_modelo(name_modelo: $name_modelo);
        if(errores::$error){
            return $this->error->error(mensaje: 'Error al validar entrada para modelo',data: $valida);
        }
        if($nombre_estructura === ''){
            return  $this->error->error(mensaje: 'Error nombre estructura no puede venir vacia',
                data: $nombre_estructura,es_final: true);
        }

        $modelo = $modelo_base->genera_modelo(modelo: $name_modelo, namespace_model: $namespace_model);
        if(errores::$error){
            return $this->error->error(mensaje: 'Error al generar modelo',data: $modelo);
        }
        $data = $modelo->filtro_and(filtro:$filtro);
        if(errores::$error){
            return $this->error->error(mensaje: 'Error al generar registro hijos', data: $data);
        }
        $row[$nombre_estructura] = $data->registros;


        return $row;
    }