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