如何在Lighthouse GraphQL(按随机顺序)中洗牌结果?
我明白了,但我很好奇如何对我的灯塔图ql结果进行随机排序,有点像随机排序中的如何在Lighthouse GraphQL(按随机顺序)中洗牌结果?,graphql,laravel-lighthouse,Graphql,Laravel Lighthouse,我明白了,但我很好奇如何对我的灯塔图ql结果进行随机排序,有点像随机排序中的inin: 或者类似MySQL中的RAND(): SELECT col1, col2 FROM mytable ORDER BY RAND(); 目前,由于没有RANDSortOrder Enum,因此无法使用lighthouse开箱即用 你可以用一个范围 假设您想从表中随机抓取一些用户。在模式的用户查询中创建一个作用域。graphql type Query { posts( random: B
in
in:
或者类似MySQL中的RAND()
:
SELECT col1, col2
FROM mytable
ORDER BY RAND();
目前,由于没有
RAND
SortOrder Enum,因此无法使用lighthouse开箱即用
你可以用一个范围
假设您想从表中随机抓取一些用户。在模式的用户查询中创建一个作用域。graphql
type Query {
posts(
random: Boolean @scope(name: "random")
): [User!]!
}
在App\User.php
中创建作用域:
// ...
/**
*随机洗牌用户
*
*@param\illighte\Database\elount\Builder$query
*@return\illumb\Database\elount\Builder
*/
公共函数范围($query){
返回$query->inRandomOrder();
}
// ...
利用查询中的范围:
{
users(random: true)
{
id,
email,
username
}
}
这对于小型数据集很好,但请记住,对于大型数据集,这可能是一个性能瓶颈。这很有效!我真的很感激。现在,我只需要找到一种方法,让我的
gql
仅在随机变量为false时才包含其orderBy
对象变量(该变量具有键字段
和顺序
)。
{
users(random: true)
{
id,
email,
username
}
}