administrador.base.orm.rows.filtro_para_hijo.21.8.0 - gamboamartin/administrador GitHub Wiki
filtro_para_hijo
Esta función genera un filtro basado en múltiples campos de un arreglo $row, utilizando otro arreglo $filtros que especifica las correspondencias entre campos de filtro y campos de fila.
Signatura
private function filtro_para_hijo(array $filtros, array $row): array
Parámetros
$filtros (array): Un arreglo que especifica las correspondencias entre campos de filtro y campos de fila. $row (array): El arreglo del cual se tomarán los valores para aplicar el filtro.
Retorna
- array: El filtro generado a partir de los campos especificados en $filtros.
Explicación Detallada
- La función itera sobre cada par clave-valor en el arreglo $filtros.
- Verifica si el campo $campo_row asociado al campo de filtro $campo_filtro está vacío. Si lo está, devuelve un mensaje de error.
- Utiliza la función filtro_hijo para generar el filtro basado en el par clave-valor actual y el arreglo $row.
- Si ocurre algún error durante la generación del filtro, devuelve un mensaje de error.
- Retorna el filtro generado.
Ejemplos
$objeto = new rows();
// Definir arreglos
$filtros = ['tipo' => 'tipo', 'categoria' => 'categoria'];
$row = ['tipo' => 'texto', 'categoria' => 'información adicional'];
// Generar filtro
$resultado = $objeto->filtro_para_hijo($filtros, $row);
/*En este ejemplo, $resultado contendrá ['tipo' => 'texto', 'categoria' => 'información adicional'], ya que se ha generado el filtro basado en los campos 'tipo' y 'categoria' del arreglo $row.*/
Código de la Función
private function filtro_para_hijo(array $filtros, array $row):array{
$filtro = array();
foreach($filtros as $campo_filtro=>$campo_row){
if($campo_row===''){
return $this->error->error(mensaje: "Error campo vacio",data: $campo_filtro, es_final: true);
}
$filtro = $this->filtro_hijo(campo_filtro: $campo_filtro, campo_row: $campo_row,filtro: $filtro,
row: $row);
if(errores::$error){
return $this->error->error(mensaje: 'Error al generar filtro',data: $filtro);
}
}
return $filtro;
}