该包允许您根据请求过滤、排序和包含雄辩的关系。此包中使用的QueryBuilder
扩展了 Laravel 的默认 Eloquent 构建器。这意味着您最喜欢的所有方法和宏仍然可用。查询参数名称尽可能遵循 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 安装该软件包:
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
请参阅变更日志以了解最近更改的更多信息。
详细信息请参阅贡献。
如果您发现有关安全的错误,请发送邮件至 [email protected],而不是使用问题跟踪器。
麻省理工学院许可证 (MIT)。请参阅许可证文件以获取更多信息。