2016-11-11 13 views
3

Laravelの初心者として、ギャラリーの画像をランダムに表示しようとしています。 routes.phpのでは、私は現在、このコードを持っている:Laravel OrderByランダム

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

あなたはそれを動作させるための任意のアイデアを持っていますか?

おかげ

答えて

8

説明:inRandomOrder()方法は、ランダムにクエリ結果を並べ替えるために使用することができます。たとえば、ランダムなユーザーを取得するためにこの方法を使用することができる:

例:他のバージョン> = 5.0について

$galleries = App\Gallery::inRandomOrder()->get(); 
//Or 
DB::table('gallery')->inRandomOrder()->get(); 

もしrandom()方法を使用することができます。

説明:random()方法コレクションからランダムアイテムを返します。

例:

App\Gallery::all()->random()->get(); 

・ホープ、このことができます。

+0

あなたの答えをありがとう。このソリューションはエラーを返します: 'BadMethodCallException in Builder.php line 2161:定義されていないメソッドを呼び出す\ Database \ Query \ Builder :: inRandomOrder()' – Vfero

+0

** inRandomOrder **が問題です。私はまだ同じエラーがあります。 – Vfero

+1

> = laravel 5.2 ..あなたのlaravelのバージョンを確認してください – LorenzoBerti

1

あなたに試すことができます:あなたはinRandomOrder()メソッドを使用することができLaravel> = 5.2の場合

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

あなたの答えはこの解決策は変わりません、私はまだorderby IDとして結果を得ます – Vfero

+0

上記で提供された正確なクエリを実行していますか、それとももっと追加していますか? –

+0

私はただ追加します。最後に – Vfero