2016-05-04 21 views
3

laravelの行の乱数に対して、以下のクエリを使用しています。laravelクエリの制限付きのデータテーブルのサーバー側のページ番号

Select * from table order by rand() limit 0,1000 

そして、私のデータ・テーブル・ページネーションのサイズは100ですが、私は、クエリに制限を使用していたときに改ページが正しく動作しません。

私はサーバー側のページ付けでlaravelで上記のクエリを使用してこれを実装できますか?

ありがとうございます!

答えて

1

Laravelが自動的に制限を追加するため、結果を照会した後でページネゴシエーションを実行する必要があります。お使いのモデルにコードの下に追加します。

public function getPaginatorResults($pagination) { 
    $total = $this->getTotal(); 
    $query = $this->orderByRaw('rand()') 
        ->skip($pagination * (\Paginator::getCurrentPage() - 1)) 
        ->take($pagination); 
    $results = $query->get(); 

    return \Paginator::make($results->all(), $total, $pagination); 
} 
+0

私は$ query-を使用して応答するlaravelとlaravelを使用して、データテーブルのAjaxの一部を使用していますので、どのように私はこの機能を使用することができます>(真)にすることのように。 –

+0

モデルのコード全体(存在する場合)、コントローラー、およびルーティングは、どこに置く必要があるかわからないので、それを過ぎてください。 –

関連する問題