2016-11-11 146 views
3

作爲Laravel的新手,我試圖隨機顯示圖庫的圖像。在routes.php文件,我現在有這樣的代碼:Laravel OrderBy Random

// Get galleries 
$galleries = App\Gallery::orderBy('id', 'DESC')->get(); 

你有什麼想法,使工作?

感謝

回答

8

對於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(); 

希望這有助於。

+0

感謝您的回答。這個解決方案給出了一個錯誤:在Builder.php中的BadMethodCallException行2161:調用未定義的方法Illuminate \ Database \ Query \ Builder :: inRandomOrder()' – Vfero

+0

看來** inRandomOrder **是問題所在。我仍然有同樣的錯誤。 – Vfero

+1

這是> = laravel 5.2 ..檢查您的laravel版本 – LorenzoBerti

1

你可以爲嘗試:

$galleries = App\Gallery::orderByRaw('RAND()')->get() 
+0

Thnaks爲您的答案,這個解決方案沒有改變,我仍然得到一個結果作爲orderby ID – Vfero

+0

你運行上面提供的確切查詢,或者你正在增加更多? –

+0

我只是補充一下;在末尾 – Vfero