该软件包允许您根据请求过滤、排序和包含Eloquent关系。此包中使用的扩展了 Laravel 的默认 Eloquent 构建器。这意味着您喜欢的所有方法和宏仍然可用。查询参数名称尽可能遵循 JSON API 规范。QueryBuilder
use Spatie\QueryBuilder\QueryBuilder;
$users = QueryBuilder::for(User::class)
->allowedFilters('name')
->get();
// all `User`s that contain the string "John" in their name
阅读有关过滤功能的更多信息,例如:部分过滤器、精确过滤器、范围过滤器、自定义过滤器、忽略的值、默认过滤器值……
$users = QueryBuilder::for(User::class)
->allowedIncludes('posts')
->get();
// all `User`s with their `posts` loaded
阅读有关包含功能的更多信息,例如:包括嵌套关系,包括关系计数,自定义包含,…
$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 = QueryBuilder::for(User::class)
->allowedFields(['id', 'email'])
->get();
// the fetched `User`s will only have their id & email set
阅读有关选择字段的详细信息。