【发布时间】:2016-11-11 15:43:01
【问题描述】:
作为 Laravel 的新手,我正在尝试随机显示画廊的图像。在 routes.php 中,我目前有这个代码:
// Get galleries
$galleries = App\Gallery::orderBy('id', 'DESC')->get();
你有什么想法让它发挥作用吗?
谢谢
【问题讨论】:
标签: laravel sql-order-by
作为 Laravel 的新手,我正在尝试随机显示画廊的图像。在 routes.php 中,我目前有这个代码:
// Get galleries
$galleries = App\Gallery::orderBy('id', 'DESC')->get();
你有什么想法让它发挥作用吗?
谢谢
【问题讨论】:
标签: laravel sql-order-by
对于 Laravel >= 5.2,您可以使用 inRandomOrder() 方法。
说明:
inRandomOrder()方法可用于对查询结果进行随机排序。例如,您可以使用此方法获取随机用户:
示例:
$galleries = App\Gallery::inRandomOrder()->get();
//Or
DB::table('gallery')->inRandomOrder()->get();
对于 >= 5.0 的其他版本,您可以使用 random() 方法。
说明:
random()方法从集合中返回一个随机项。
示例:
App\Gallery::all()->random()->get();
希望这会有所帮助。
【讨论】:
BadMethodCallException in Builder.php line 2161: Call to undefined method Illuminate\Database\Query\Builder::inRandomOrder()
你可以试试:
$galleries = App\Gallery::orderByRaw('RAND()')->get()
【讨论】:
如果你想对已经检索到的集合进行随机排序,你可以使用类似这样的方法
$result = $result->sortBy(function($item){
return rand();
});
【讨论】: