administrador.base.orm._result.genera_registro_hijo.21.18.0 - gamboamartin/administrador GitHub Wiki
genera_registro_hijo
Esta función privada se encarga de generar un registro hijo y asignarlo a un array de datos $row
, utilizando un modelo base proporcionado y los datos del modelo hijo.
Signatura
private function genera_registro_hijo(array $data_modelo, modelo_base $modelo_base, string $name_modelo, array $row):array
Parámetros
-
$data_modelo
(array): Un array que contiene los datos del modelo hijo, incluyendo el nombre de la estructura donde se almacenarán los registros hijos y el namespace del modelo hijo. -
$modelo_base
(modelo_base): Una instancia del modelo base a utilizar para generar el modelo de datos hijo. -
$name_modelo
(string): El nombre del modelo hijo. -
$row
(array): El array de datos al que se agregará el registro hijo.
Retorna
- Tipo:
array
- Descripción: El array
$row
actualizado con el registro hijo generado y asignado en la estructura especificada.
Explicación Detallada
Validación de los datos del modelo: Se verifica si existen las claves necesarias en el array $data_modelo. Si alguna clave falta, se devuelve un mensaje de error.
Obtención del filtro para el hijo: Se llama al método obten_filtro_para_hijo() de la clase rows para obtener el filtro necesario para recuperar los registros hijos.
Asignación de registros hijo: Se llama a la función asigna_registros_hijo() para aplicar el filtro y asignar los registros hijos al array $row.
Retorno del array actualizado: Se devuelve el array $row actualizado con el registro hijo generado y asignado.
Ejemplos
// Ejemplo: Generar un registro hijo y asignarlo a un array de datos
$data_modelo = [
'nombre_estructura' => 'hijos',
'namespace_model' => 'App\\Models'
];
$modelo_base = new ModeloBase();
$name_modelo = 'Hijo';
$row = ['id_padre' => 1];
$resultado_actualizado = genera_registro_hijo($data_modelo, $modelo_base, $name_modelo, $row);
if (is_array($resultado_actualizado)) {
// Utilizar el array actualizado con el registro hijo generado
var_dump($resultado_actualizado);
} else {
// Manejar el mensaje de error
echo "Hubo un error al generar el registro hijo: ";
var_dump($resultado_actualizado);
}
Código de la Función
private function genera_registro_hijo(array $data_modelo, modelo_base $modelo_base, string $name_modelo,
array $row):array{
$keys = array('nombre_estructura','namespace_model');
$valida = $this->validacion->valida_existencia_keys(keys:$keys, registro: $data_modelo);
if(errores::$error){
return $this->error->error(mensaje: "Error al validar data_modelo",data: $valida);
}
if(!isset($data_modelo['nombre_estructura'])){
return $this->error->error(mensaje: 'Error debe existir $data_modelo[\'nombre_estructura\'] ',
data: $data_modelo, es_final: true);
}
$filtro = (new rows())->obten_filtro_para_hijo(data_modelo: $data_modelo,row: $row);
if(errores::$error){
return $this->error->error(mensaje: "Error filtro",data: $filtro);
}
$row = $this->asigna_registros_hijo(filtro: $filtro, modelo_base: $modelo_base,
name_modelo: $name_modelo, namespace_model: $data_modelo['namespace_model'],
nombre_estructura: $data_modelo['nombre_estructura'], row: $row);
if(errores::$error){
return $this->error->error(mensaje: 'Error al asignar registros de hijo', data: $row);
}
return $row;
}