シリーズとエピソードがあり、各シリーズには多くのエピソードがあるとします。
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 のドキュメントによると、次のようにディレクティブ ( https://lighthouse-php.com/master/api-reference/directives.html#hasmany )を設定type
することで、リレーションをページ付けすることもできます。@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'"
それは正確にはどういう意味ですか?また、関連するモデルとすべてのモデルの両方を直接ページ分割する機能を取得するにはどうすればよいですか?