Фильтры столбцов используются для фильтрации списка.
В случае с AdminDisplay::datatables() поиск производится через API библиотеки datatables.
Пример использования:
$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) и была соблюдена последовательность
В классах фильтров столбцов используется трейт:
- HtmlAttributes, с помощью которого для них можно настраивать HTML атрибуты.
- Assets, с помощью которого для них можно подключать ассеты.
Указание оператора, который будет использован при фильтрации. По умолчанию equal
static::setOperator(string $operator): return selfSleepingOwl\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- не одно из (значения указываются через,)
Фильтрация данных по строке
AdminColumnFilter::text()->setPlaceholder('Full Name')->setOperator(\SleepingOwl\Admin\Contracts\FilterInterface::CONTAINS)Указание плейсхолдера для поля.
static::setPlaceholder(string $placeholder): return selfФильтрация данных по дате
AdminColumnFilter::date()->setPlaceholder('Date')->setFormat('d.m.Y')Указание формата даты в которой приходит дата из инпута
static::setFormat(string $format): return selfУказание формата даты отображаемой в инпуте и понятной для Javascript
static::setPickerFormat(string $pickerFormat): return selfУказание формата даты в котором данные хранятся в БД
static::setSearchFormat(string $searchFormat): return selfШирина инпута
static::setWidth(int $width): return selfФильтрация данных по данным из выпадающего списка
Фильтрация данных по диазону.
Указание поля начала диапазона
static::setFrom(ColumnFilterInterface $from): return selfУказание поля конца диапазона
static::setTo(ColumnFilterInterface $from): return self