laravel - Laravel Lighthouse:在相关模型上使用 @paginate 会破坏直接查询模型的能力
问题描述
假设我们有 Series 和 Episodes,并且每个 Series 都有很多 Episodes:
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#hasmanytype
)来对关系进行分页,如下所示:@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'"
这到底是什么意思,以及如何获得直接对相关模型和所有模型进行分页的能力?
解决方案
这是一个错误,已在 v4.8.1 中修复https://github.com/nuwave/lighthouse/releases/tag/v4.8.1
推荐阅读
- nginx - 我的 nginx 配置可以在没有默认服务器的情况下工作吗
- deep-learning - 如何手动计算像 ResNet 这样的 CNN 的后向传递中的 FLOPS 数?
- apache - 有没有办法在同一台机器上同时运行 Apache 和 IIS
- python - 如何在多级字典中查找值
- apache - RewriteOptions InheritBefore 的 Htaccess 问题
- azure - Azure Function App 中的路由或多个函数
- python - 如何使用 flask_sqlalchemy 从 MySQL 获取 varchar 类型的数据?
- python-3.x - slackAPI python在烧瓶中使用Jinja在父消息问题下传播消息回复
- cmd - wmic 密码中的用户逗号
- java - 绘制大量三角形的有效方法(OpenGL)