Download the PHP package forest-lynx/laravel-filterable-light without Composer
On this page you can find all versions of the php package forest-lynx/laravel-filterable-light. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download forest-lynx/laravel-filterable-light
More information about forest-lynx/laravel-filterable-light
Files in forest-lynx/laravel-filterable-light
Package laravel-filterable-light
Short Description Фильтрация модели Eloquent Laravel основе данных модели.
License MIT
Homepage https://github.com/forest-lynx/laravel-filterable-light
Informations about the package laravel-filterable-light
Фильтрация для моделей Laravel
Пакет представляет собой удобный инструмент для добавления метода фильтрации к моделям Eloquent в Laravel. При помощи этого пакета можно легко преобразовывать запросы к базе данных на основе данных, полученных от пользователя. Особенность этого пакета заключается в генерации параметров фильтрации на основе структуры модели и схемы соответствующей таблицы в базе данных. Пакет анализирует поля модели, ключи полнотекстового поиска и связи с другими таблицами, чтобы обеспечить максимально удобный процесс фильтрации данных.
Table of Contents
- Установка
- Настройка
- Применение
- Лицензия
Установка
Команда для установки:
Настройка
Если необходимо опубликуйте файла конфигурации выполнив команду:
Или вы можете осуществить настройку переменных пакета в вашем конфигурационном файле (.env
).
Описание настроек:
FILTERABLE_L_MODELS_PATH
Отвечает за пространство имен моделей. По умолчанию "App\\Models\\
"
FILTERABLE_L_SKIP_MODELS
Массив моделей которые по умолчанию необходимо исключить из фильтрации.
FILTERABLE_L_SKIP_FIELDS_DEFAULT
Массив свойств модели по умолчанию которые не участвуют в фильтрации
Применятся ко всем моделям.
FILTERABLE_L_INCLUDE_FIELDS_RELATED
(Логическое) Исключать ли из допустимых условий фильтрации, свойства модели отвечающие за связь с другими таблицами. Исключение таких полей происходит из принципов конвенции наименований применяемых в Laravel.
Добавьте Trait
в модели для которых планируется применение фильтрации:
У модели становятся доступны свойства:
Свойство $filtering
(логическое значение) отвечает за применение к модели фильтрации, а так же генерацию допустимых условий фильтрации. По умолчанию true
. Свойство может быть не объявлено в модели.
Свойство $filtering_fields
массив полей участвующих в фильтрации, имеет вид. Свойство может быть не объявлено в модели, в таком случае сведения о полях доступных для фильтрации берутся из свойства $fillable
указанных для модели.
Свойство $filtering_fields_hidden
определяет скрытые от фильтрации свойства модели.
В пакете применяются Attribute
для дополнительной настройки условий фильтрации модели.
Для методов участвующих в связях с другими моделями может быть применен аттрибут FilteringBlocked
который исключает метод из допустимых условий фильтрации
Примеры использования:
Применение
Параметр метода должен принимать Illuminate\Http\Request с полем filters
или массив вида:
Так же допустима точеная нотация массива как полностью так и частично. Для примера:
пример строки запроса:
Если параметр пустой или отсутствует возвращается Builder
без изменений.
Типы сравнений: | в запросе | SQL тип | Описание |
---|---|---|---|
= | = | Равно | |
!= | <> | Не равно | |
< | < | Меньше | |
<= | <= | Меньше или равно | |
> | > | Больше | |
>= | >= | Больше или равно | |
~ | LIKE | Находится в искомом значении | |
!~ | NOT LIKE | Исключая находящиеся в искомом значении | |
i | IN | Находится ли значения в пределах набора | |
!i | NOT IN | За исключением значений находящихся наборе | |
>< | BETWEEN | Находятся в диапазоне | |
!>< | NOT BETWEEN | Исключая диапазон | |
0 | NULL | Нулевое значение | |
!0 | IS_NOT_NULL | Не нулевое значение |
значения с типом
LIKE
иNOT LIKE
оборачиваются в%
Лицензия
Лицензия MIT (MIT).Пожалуйста, смотрите Файл Лицензии для получения дополнительной информации.
All versions of laravel-filterable-light with dependencies
illuminate/contracts Version ^9.0 || ^10.0
illuminate/support Version ^9.0 || ^10.0
illuminate/database Version ^9.0 || ^10.0
illuminate/testing Version ^9.0 || ^10.0