Esta web utiliza cookies propias y de terceros para su funcionamiento. ¿Aceptas? Leer más
ListController

addFilterSelectWhere()

Añade un filtro de tipo select a la pestaña del ListController, con la peculiaridad de que es un filtro de filtros configurables. Es decir, cada una de las opciones de la lista del Select aplica un filtro databasewhere predefinido en el controlador. Por ejemplo: una opción puede ser filtrar todos los datos que tengan false en la columna debaja, y otra opción filtrar todos los que codpais sea ESP. Otra particularidad de este filtro es que en caso de no haber seleccionado (por el usuario) una de las opciones se aplica automáticamente la primera opción.

Parámetros:

  • viewName: nombre identificador de la pestaña.
  • key: identificador del filtro. Generalmente el nombre del campo que quieras filtrar.
  • label: etiqueta a mostrar en el filtro. Se traducirá.
  • values: Array con la lista de valores a mostrar en el desplegable. Se compone de una etiqueta y un array de DatabaseWhere que se aplica cuando se seleccione esa opción.

Ejemplo: Filtras los clientes según su estado

Filtrar en la lista de clientes (vista ListCliente) los clientes según el estado designado en su ficha.

 $values = [
    ['label' => $this->i18n->trans('only-active'), 'where' => [new DataBaseWhere('debaja', 'FALSE')]],
    ['label' => $this->i18n->trans('only-suspended'), 'where' => [new DataBaseWhere('debaja', 'TRUE')]],
    ['label' => $this->i18n->trans('all'), 'where' => []]
];
$this->$this->addFilterSelectWhere('ListCliente', 'status', $values);