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