带有ajax的inRandomOrder()查询返回相同的元素

时间:2017-05-15 21:35:27

标签: php laravel

我有一个关于Laravel的查询

$query = Work::inRandomOrder()->where('orientation', $request->get('orientation')->paginate(11);

我有一个“加载更多”按钮,每次点击都会调用11个其他人。

但是,我想以随机顺序显示我的数据。但是通过这个查询,他向我重复了几个数据。所以在我的作品清单中,我有2到3次相同,显然,它并不好。有没有办法使用RandomOrder()来避免重复?

谢谢

1 个答案:

答案 0 :(得分:0)

我相信每次加载脚本时数据都是随机的,包括每次加载动态11个数据字段。实现此目的的一种方法是随机化,将数据存储在用户的会话变量中,然后从中获取下一个元素。然而,这可能非常沉重。

我会去一些容易预测的数学,这对最终用户来说是“随机的”。例如,您可以获取查询的每个第N个条目,如第1个,第5个,第9个,第13个......如果N = 4,则在用户会话中仅存储数字N.