2016-05-31 54 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); 

您可以生成自己的種子,並在會話中存儲或某事記住它。