Skip to content

Latest commit

 

History

History
144 lines (103 loc) · 5.61 KB

columnfilters.md

File metadata and controls

144 lines (103 loc) · 5.61 KB

Фильтры столбцов

Фильтры столбцов используются для фильтрации списка.

В случае с AdminDisplay::datatables() поиск производится через API библиотеки datatable.

Пример использования:

$display = AdminDisplay::datatables();

$display->setColumnFilters([
  null, // Не ищем по первому столбцу
  
  // Поиск текста
  AdminColumnFilter::text()->setPlaceholder('Full Name'),
  
  // Поиск по диапазону 
  AdminColumnFilter::range()->setFrom(
      AdminColumnFilter::text()->setPlaceholder('From')
  )->setTo(
      AdminColumnFilter::text()->setPlaceholder('To')
  ),
  
  // Поиск по диапазону дат
  AdminColumnFilter::range()->setFrom(
      AdminColumnFilter::date()->setPlaceholder('From Date')->setFormat('d.m.Y')
  )->setTo(
      AdminColumnFilter::date()->setPlaceholder('To Date')->setFormat('d.m.Y')
  ),
  
  // Поиск по выпадающему списку значений
  AdminColumnFilter::select()->setPlaceholder('Country')->setModel(new Country)->setDisplay('title')
]);

При указании столбцов необходимо, чтобы кол-во столбцов поиска соответствовало кол-ву столбцов в таблице (если поиск по определенному столбцу не нужен, то необходимо передать null) и была соблюдена последовательность

API

В классах фильтров столбцов используется трейт:

  • HtmlAttributes, с помощью которого для них можно настраивать HTML атрибуты.
  • Assets, с помощью которого для них можно подключать ассеты.

Методы доступные во всех фильтрах

setOperator

Указание оператора, который будет использован при фильтрации. По умолчанию equal

  static::setOperator(string $operator): return self

Список доступных операторов сравнения:

  • SleepingOwl\Admin\Contracts\FilterInterface::EQUAL = equal - равно
  • SleepingOwl\Admin\Contracts\FilterInterface::NOT_EQUAL = not_equal - не равно
  • SleepingOwl\Admin\Contracts\FilterInterface::LESS = less - меньше
  • SleepingOwl\Admin\Contracts\FilterInterface::LESS_OR_EQUAL = less_or_equal - меньше или равно
  • SleepingOwl\Admin\Contracts\FilterInterface::GREATER = greater - больше
  • SleepingOwl\Admin\Contracts\FilterInterface::GREATER_OR_EQUAL = greater_or_equal - больше или равно
  • SleepingOwl\Admin\Contracts\FilterInterface::BEGINS_WITH = begins_with - начинается с
  • SleepingOwl\Admin\Contracts\FilterInterface::NOT_BEGINS_WITH = not_begins_with- не начинается с
  • SleepingOwl\Admin\Contracts\FilterInterface::CONTAINS = contains - содержит
  • SleepingOwl\Admin\Contracts\FilterInterface::NOT_CONTAINS = not_contains - не содержит
  • SleepingOwl\Admin\Contracts\FilterInterface::ENDS_WITH = ends_with - заканчивается на
  • SleepingOwl\Admin\Contracts\FilterInterface::NOT_ENDS_WITH = not_ends_with - не заканчивается на
  • SleepingOwl\Admin\Contracts\FilterInterface::BETWEEN = between - между (значения указываются через ,)
  • SleepingOwl\Admin\Contracts\FilterInterface::NOT_BETWEEN = not_between - не между (значения указываются через ,)
  • SleepingOwl\Admin\Contracts\FilterInterface::IN = in - одно из (значения указываются через ,)
  • SleepingOwl\Admin\Contracts\FilterInterface::NOT_IN = not_in - не одно из (значения указываются через ,)

Text

Фильтрация данных по строке

AdminColumnFilter::text()->setPlaceholder('Full Name')->setOperator(\SleepingOwl\Admin\Contracts\FilterInterface::CONTAINS)

setPlaceholder

Указание плейсхолдера для поля.

  static::setPlaceholder(string $placeholder): return self

Date

Фильтрация данных по дате

AdminColumnFilter::date()->setPlaceholder('Date')->setFormat('d.m.Y')

setFormat

Указание формата даты в которой приходит дата из инпута

  static::setFormat(string $format): return self

setPickerFormat

Указание формата даты отображаемой в инпуте и понятной для Javascript

  static::setPickerFormat(string $pickerFormat): return self

setSearchFormat

Указание формата даты в котором данные хранятся в БД

  static::setSearchFormat(string $searchFormat): return self

setWidth

Ширина инпута

  static::setWidth(int $width): return self

Select

Фильтрация данных по данным из выпадающего списка

Range

Фильтрация данных по диазону.

setFrom

Указание поля начала диапазона

  static::setFrom(ColumnFilterInterface $from): return self

setTo

Указание поля конца диапазона

  static::setTo(ColumnFilterInterface $from): return self