我在查询中使用@paginator
指令,我的客户希望从查询中获得帖子的所有记录。这是我的代码:
posts: [Post!]! @paginate
我测试了这个查询:
posts(first:0) {id} #works but don't get all records
posts(first:-1) {id} #error
获得所有记录的一种方法是在paginatorInfo
中使用total
的值,并在first:
上使用该值进行新查询。
posts(first:0) {
paginatorInfo {
total
}
}
对于优化来说,使用2个查询来获取所有记录是非常糟糕的。
我得到的最好的方法是做一个新的查询(现在有两个查询具有不同的指令和名称的帖子),如:
allPosts: [Post!]! @all
其他不太干净的方法:
- 设置分页。在config/lighthouse.php中设置max_count为null,并执行
(first: 100000000)
(int
是32位,因此有限制)。 - 将
@paginantor
更改为@field(resolver:)
并使用纯php进行分页。