я хочу вернуть постраничный ответ на запрос от laravel, используя маяк graphql - PullRequest
0 голосов
/ 26 апреля 2020

Я строю API GraphQl с пакетом Lighthouse GraphQL для laravel

У меня есть запрос и схема, как это

extend type Query {
  products(type: String items: Int category: [String]): ProductPaginator
}

type Product {
 name: String
 slug: String
 price: String
 description: String
 stock_count: String
 created_at: DateTime
 updated_at: DateTime

}

type ProductPaginator {
 data: [Product]
}

Я хочу вернуть набор разбитых на страницы результатов из базы данных

, вот преобразователь

return new ProductCollection(Product::paginate());

, а это ресурс API

class ProductCollection extends ResourceCollection
{
  public $collects = "App\Http\Resources\Product\Product";
/**
 * Transform the resource collection into an array.
 *
 * @param  \Illuminate\Http\Request  $request
 * @return array
 */
 public function toArray($request)
 {
    return $this->collection->toArray();
 }
}

проблема в том, что когда я запускаю запрос graphql следующим образом

query {
  products(type: "normal", items: 10 category: ["here"]){
   data{
    name,
    price
  }
   }
  }

, он всегда возвращает данные

, но затем я пробовал это

$data = [
    "data" => [
        [
            "name" => "emeka",
            "price" => 23
        ],
        [
            "name" => "Dubem",
            "price" => 43
        ],
    ]
];
return $data;

, и он работал как ожидалось. я не знаю, что я делаю здесь неправильно. Мне нужна помощь.

...