Фильтры столбцов используются для фильтрации списка.
В случае с 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
) и была соблюдена последовательность
В классах фильтров столбцов используется трейт:
- HtmlAttributes, с помощью которого для них можно настраивать HTML атрибуты.
- Assets, с помощью которого для них можно подключать ассеты.
Указание оператора, который будет использован при фильтрации. По умолчанию 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
- не одно из (значения указываются через,
)
Фильтрация данных по строке
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