Предположим, у нас есть Серии и Эпизоды, и у каждой Серии есть много Эпизодов:
type Query {
series: [Series!]! @paginate(defaultCount: 10)
series(id: ID @eq): Series @find
episodes: [Episode!]! @paginate(defaultCount: 10)
episode(id: ID @eq): Episode @find
}
type Series {
id: ID!
title: String!
episodes: [Episode]! @hasMany
plot: String!
}
type Episode {
id: ID!
title: String!
season: Int!
series: Series! @belongsTo
plot: String!
}
Все работает отлично. Мы можем запросить серии и эпизоды, и они разбиты на страницы.
Документы Lighthouse говорят, что мы также можем разбивать на страницы отношения, установив type
в директиве @hasMany
(https://lighthouse-php.com/master/api-reference/directives.html#hasmany) следующим образом :
type Series {
id: ID!
title: String!
episodes: [Episode]! @hasMany(type: "paginator")
plot: String!
}
Это прекрасно работает при запросах к сериям, подобным этому:
query series {
series {
paginatorInfo {
total
currentPage
hasMorePages
}
data {
title
episodes {
paginatorInfo {
total
currentPage
hasMorePages
}
data {
title
}
}
}
}
}
Ряд и каждый их эпизод разбиваются на страницы.
Но теперь я больше не могу запрашивать эпизоды напрямую:
query episodes {
episodes {
paginatorInfo {
total
currentPage
hasMorePages
}
data {
title
}
}
}
Это возвращает ошибку No class 'EpisodePaginator' was found for directive 'paginate'"
Что это значит точно, и как я могу получить возможность разбивать на страницы как связанные модели, так и все модели напрямую?