Skip to content

Query BuilderEloquent-запросы из запросов к API

Параметры filter[], sort, include и fields[] проверяются по списку разрешённых и применяются к Eloquent-запросу.

UserController.php
GET /users?fields[users]=name&fields[posts]=title&include=posts
QueryBuilder::for(User::class)
    ->allowedFields('name', 'posts.title')
    ->allowedIncludes('posts')
    ->get();
select "users"."name", "users"."id" from "users"
select "posts"."title", "posts"."user_id" from "posts"
  where "posts"."user_id" in (1, 2, 3)
   ключи связи добавлены автоматически

Установка ​

bash
composer require myprogs/query-builder

Нужны PHP 8.3 или новее и Laravel 12 или 13. Сервис-провайдер подключается автоматически. Дальше — в документацию.