dan*_*ang 4 php mysql random pagination laravel
我们如何通过laravel中的随机记录进行分页?例如:
$products = Product::all()->orderBy(DB::raw('RAND()'));
$products->paginate(4);
$products->setPath('products');
Run Code Online (Sandbox Code Playgroud)
由于随机顺序,上面将以重复记录结束.如何持久化$ products对象,以便在发出新的页面请求时,它应该过滤相同/固定的随机记录集?
Tho*_*een 15
当您深入了解mysql 的文档并搜索RAND()功能时,您将看到可以使用"种子".
通过使用种子,您将始终获得随机化的相同结果.
例:
$products = Product
::all()
->orderBy(DB::raw('RAND(1234)'))
->paginate(4);
Run Code Online (Sandbox Code Playgroud)
您可以生成自己的种子并存储在会话或其他内容中以便记住它.
更新
该Laravel查询生成器现在有不完全相同的功能:
$products = Product
::all()
->inRandomOrder('1234')
->paginate(4);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3050 次 |
| 最近记录: |