administrador.base.orm.rows.obten_filtro_para_hijo.21.8.0 - gamboamartin/administrador GitHub Wiki
obten_filtro_para_hijo
Esta función devuelve un array que representa un filtro para un elemento hijo.
Signatura
final public function obten_filtro_para_hijo(array $data_modelo, array $row):array
Parámetros
$data_modelo (array): Un array que contiene datos del modelo, incluyendo dos subarrays filtros y filtros_con_valor.
$row (array): Un array que representa una fila de datos.
Retorna
- array: Un array que representa un filtro para un elemento hijo. Si hay algún error durante el proceso de obtención del filtro, la función puede devolver un array de error con detalles sobre el problema.
Explicación Detallada
- Verificación de los datos del modelo: La función verifica si el array $data_modelo contiene los subarrays filtros y filtros_con_valor, y si ambos son arrays. Si no lo son, devuelve un mensaje de error indicando cómo corregirlo.
- Extracción de filtros y filtros con valor: Los subarrays filtros y filtros_con_valor se extraen del array $data_modelo.
- Obtención del filtro base: Se llama a la función filtro_para_hijo para obtener un filtro base utilizando los filtros del modelo y la fila de datos proporcionada.
- Verificación de errores en la obtención del filtro base: Se verifica si hubo errores al obtener el filtro base. Si es así, se devuelve un mensaje de error.
Ejemplos
// Datos del modelo
$data_modelo = [
'filtros' => ['filtro1', 'filtro2'],
'filtros_con_valor' => ['campo1' => 'valor1', 'campo2' => 'valor2']
];
// Fila de datos
$row = ['campo1' => 'valor1', 'campo2' => 'valor2', 'campo3' => 'valor3'];
// Llamada a la función obten_filtro_para_hijo
$filtro_para_hijo = obten_filtro_para_hijo($data_modelo, $row);
// Verificar si se produjo un error
if (array_key_exists('mensaje', $filtro_para_hijo)) {
// Manejar el error
echo "Error: " . $filtro_para_hijo['mensaje'];
} else {
// Utilizar el filtro resultante
print_r($filtro_para_hijo);
}
Código de la Función
final public function obten_filtro_para_hijo(array $data_modelo, array $row):array{
if(!isset($data_modelo['filtros'])){
$fix = 'En data_modelo debe existir un key filtros como array data_modelo[filtros] = array()';
return $this->error->error(mensaje: "Error filtro", data: $data_modelo, es_final: true, fix: $fix);
}
if(!isset($data_modelo['filtros_con_valor'])){
$fix = 'En data_modelo debe existir un key filtros como array data_modelo[filtros_con_valor] = array()';
return $this->error->error(mensaje: "Error filtro", data: $data_modelo, es_final: true, fix: $fix);
}
if(!is_array($data_modelo['filtros'])){
$fix = 'En data_modelo debe existir un key filtros como array data_modelo[filtros] = array()';
return $this->error->error(mensaje: "Error filtro", data: $data_modelo, es_final: true, fix: $fix);
}
if(!is_array($data_modelo['filtros_con_valor'])){
$fix = 'En data_modelo debe existir un key filtros_con_valor como array data_modelo[filtros_con_valor]
= array()';
return $this->error->error(mensaje: "Error filtro", data: $data_modelo, es_final: true, fix: $fix);
}
$filtros = $data_modelo['filtros'];
$filtros_con_valor = $data_modelo['filtros_con_valor'];
$filtro = $this->filtro_para_hijo(filtros: $filtros,row: $row);
if(errores::$error){
return $this->error->error(mensaje: "Error filtro",data: $filtro);
}
foreach($filtros_con_valor as $campo_filtro=>$value){
$filtro[$campo_filtro] = $value;
}
return $filtro;
}