Задать вопрос
colonel
@colonel
Разработчик PHP, Laravel

В Laravel lighthouse GraphQL ошибки при определении пагинации?

Есть такой код на GraphQl на сервере:

type LabelPrinter {
  id: ID!
  title: String!
  ip: String!
  port: Int!
  shop_id: ID!
  shop: Shop @belongsTo
}

type LabelPrinterPaginator {
  data: [LabelPrinter!]!
  paginatorInfo: PaginatorInfo!
}

extend type Query {
  labelPrinters(
    first: Int,
    page: Int
  ): LabelPrinterPaginator
  @paginate(
    type: PAGINATOR,
    model: "App\\Models\\LabelPrinter",
    defaultCount: 50,
    maxCount: 50
  )

  labelPrinter(id: ID! @eq): LabelPrinter
  @find(model: "App\\Models\\LabelPrinter")
}


При запросе с фронта:

query {
  labelPrinters(first: 50, page: 1) {
    data {
      id
      title
    }
  }
}


Ошибки типа:

"message": "Cannot query field \"id\" on type \"LabelPrinterPaginator\".",


При выполнении php artisan lighthouse:print-schema выяснилось, что GraphQl сам создает тип:

"""A paginated list of LabelPrinterPaginator items."""
type LabelPrinterPaginatorPaginator {
  """Pagination information about the list of items."""
  paginatorInfo: PaginatorInfo!

  """A list of LabelPrinterPaginator items."""
  data: [LabelPrinterPaginator!]!
}


И присваивает его функции labelPrinters:

labelPrinters(
    """Limits number of fetched items. Maximum allowed value: 50."""
    first: Int = 50

    """The offset from which items are returned."""
    page: Int
  ): LabelPrinterPaginatorPaginator


Поэтому и ошибка с фронта такая, как указал выше.

Что с этим можно сделать?
  • Вопрос задан
  • 48 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы