2016-05-24 5 views
2

Laravel 5.2で私のページネーションがうまく動作するのに問題があります。私はforeachを使って、各オブジェクトが特定のランキングを持つオブジェクトのリストを生成します。私が使用した(競争)Laravelカスタムページネーション

最初のクエリはこの1つだった:これはかなりOK働い

$goedeDoelen = GoedDoel::orderBy('punten', 'desc')->simplePaginate(5); 

、唯一の問題は私のランキングは、私は別のページに行くと、すべてをリセットするというものでした。

例:ページ1にはランク1〜5のオブジェクトがあり、ページ2にはランク6〜10が必要です。最初のPaginateメソッドを使用することにより、2番目のページには1から始まるオブジェクトが再度配置されます。

私はEloquentコレクションに特別な属性としてランキングを追加することでこれを回避しようとしました。

$ranking = GoedDoel::orderBy('punten', 'desc')->get(); 
    foreach($ranking as $key => $item) { 
     $item->ranking = $key+1; 
    } 

その後、更新されたコレクションで - > simplePaginate()を使用しようとしました。これは誤りをもたらした。

カスタムPaginatorを作成しました。

$goedeDoelen = new Paginator($ranking, 5); 

これは意図しない動作です。 2番目のページに行くと、URLが壊れて別のビューに移動します。

がどのようにページネータは私の現在のURLが何であるかを知っていることを確認することができ、それが適用していたの?ページ= 2

答えて

0

あなたはpaginate()メソッドを使用する必要があります。

$goedeDoelen = GoedDoel::orderBy('punten', 'desc')->paginate(5); 

{!! $goedeDoelen->links() !!} 
+0

私はこれを試しました。私はこの作品が分かっています。私が達成しようとしたのは、自分のコレクションに属性を追加し、後で更新されたコレクションに改ページすることでした。 – LucasPoignon

関連する問題