假设我们有系列剧和剧集,每个系列都有很多集:
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!
}
一切都很好。我们可以查询系列剧和剧集,并对它们进行分页。
灯塔的文档说,我们也可以通过在type
指令(https://lighthouse-php.com/master/api-reference/directives.html#hasmany)上设置@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'"
--这到底意味着什么,以及如何获得直接分页相关模型和所有模型的能力?
发布于 2020-01-18 14:43:05
这是一个错误,已经在v4.8.1 https://github.com/nuwave/lighthouse/releases/tag/v4.8.1中修复了
发布于 2020-01-14 15:59:30
除了有两个同名查询之外,所有内容看起来都是正确的:
type Query {
series: [Series!]! @paginate(defaultCount: 10)
series(id: ID @eq): Series @find
}
你需要改变其中之一。我怀疑正在发生的事情是,您正在用一个只抓取一个系列的查询覆盖分页查询。
尝试将复数查询的名称更改为allSeries
或类似的内容,看看这是否解决了您的问题。
https://stackoverflow.com/questions/59726381
复制相似问题