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