Этот пакет позволяет фильтровать, сортировать и включать красноречивые отношения на основе запроса. QueryBuilder
, используемый в этом пакете, расширяет стандартный построитель Eloquent в Laravel. Это означает, что все ваши любимые методы и макросы по-прежнему доступны. Имена параметров запроса максимально соответствуют спецификации JSON API.
/users?filter[name]=John
: use Spatie QueryBuilder QueryBuilder ;
$ users = QueryBuilder:: for (User::class)
-> allowedFilters ( ' name ' )
-> get ();
// all `User`s that contain the string "John" in their name
Узнайте больше о таких функциях фильтрации, как: частичные фильтры, точные фильтры, фильтры области, пользовательские фильтры, игнорируемые значения, значения фильтра по умолчанию и т. д.
/users?include=posts
: $ users = QueryBuilder:: for (User::class)
-> allowedIncludes ( ' posts ' )
-> get ();
// all `User`s with their `posts` loaded
Узнайте больше о таких функциях включения, как включение вложенных связей, включая количество связей, пользовательские включения и т. д.
/users?sort=id
: $ users = QueryBuilder:: for (User::class)
-> allowedSorts ( ' id ' )
-> get ();
// all `User`s sorted by ascending id
Узнайте больше о таких функциях сортировки, как пользовательская сортировка, направление сортировки и т. д.
$ query = User:: where ( ' active ' , true );
$ userQuery = QueryBuilder:: for ( $ query ) // start from an existing Builder instance
-> withTrashed () // use your existing scopes
-> allowedIncludes ( ' posts ' , ' permissions ' )
-> where ( ' score ' , ' > ' , 42 ); // chain on any of Laravel's query builder methods
/users?fields[users]=id,email
$ users = QueryBuilder:: for (User::class)
-> allowedFields ([ ' id ' , ' email ' ])
-> get ();
// the fetched `User`s will only have their id & email set
Подробнее о выборе полей.
Мы вкладываем много ресурсов в создание лучших в своем классе пакетов с открытым исходным кодом. Вы можете поддержать нас, купив один из наших платных продуктов.
Мы очень признательны вам за отправку нам открытки из вашего родного города с указанием того, какой из наших пакетов вы используете. Наш адрес вы найдете на странице контактов. Все полученные открытки мы публикуем на нашей виртуальной стене открыток.
Вы можете установить пакет через композитор:
composer require spatie/laravel-query-builder
Прочтите примечания по установке на сайте документации: https://spatie.be/docs/laravel-query-builder/v5/installation-setup.
Вы можете найти документацию по адресу https://spatie.be/docs/laravel-query-builder/v5.
Вы застряли в использовании пакета? Нашли ошибку? У вас есть общие вопросы или предложения по улучшению медиатеки? Не стесняйтесь создавать проблему на GitHub, мы постараемся решить ее как можно скорее.
Если вы обнаружили ошибку, связанную с безопасностью, отправьте электронное письмо по адресу [email protected] вместо использования системы отслеживания проблем.
Подробности смотрите на сайте UPGRADING.md.
composer test
Пожалуйста, посетите CHANGELOG для получения дополнительной информации о том, что изменилось за последнее время.
Пожалуйста, смотрите ВКЛАД для получения подробной информации.
Если вы обнаружили ошибку, связанную с безопасностью, отправьте электронное письмо по адресу [email protected] вместо использования системы отслеживания проблем.
Лицензия MIT (MIT). Дополнительную информацию см. в файле лицензии.