2016-05-31 41 views
0

laravelでランダムレコードをページする方法は?例えば :Laravel - Paginateランダムなレコード

$products = Product::all()->orderBy(DB::raw('RAND()')); 
$products->paginate(4); 
$products->setPath('products'); 

意志の上には、理由はランダムな順序で、重複したレコードで終わります。 新しいページ要求が行われたときに同じ/固定のランダムレコードセットをフィルタリングするように、$ productsオブジェクトを永続化するにはどうすればよいですか?

+0

私は、あなたが何をしているのかを教えてください。 –

+0

@AlexandreCartapanis - ページネーションは重複したレコードを与えます。上記のコードを使用しました。 – dang

答えて

5

mysqlのdocumentationに潜入し、RAND()機能を検索すると、「シード」を使用できることがわかります。

シードを使用すると、ランダム化された同じ結果が常に得られます。

例:

$products = Product 

    ::all() 

    ->orderBy(DB::raw('RAND(1234)')) 

    ->paginate(4); 

あなたがあなた自身のシードを生成し、セッションまたはそれを覚えて何かにで保存することができます。

関連する問題