laravelのページネーション実装方法メモ
HogeController.php
<?php
...
$from_date = Input::get('from_date');
$end_date = Input::get('end_date');
$data['contributions'] = Contribution:: getRanking($from_date, $end_date)->paginate(20);
return View::make('hoge', $data);
hoge.blade.php
{* ページネーション部分のみ抜粋 *}
{{$contributions->links()}}
この場合、下記のURLでアクセスしてみると、 1ページ目は正常に表示されるはずです。
http://hoge.com/contributions?from_date=xxxx-xx-xx&end_date=xxxx-xx-xx
しかし、2ページ目のリンクをクリックすると、from_dateとend_dateが無くなってしまいます。。
http://hoge.com/contributions?page=2
その場合は下記のように変更するとうまくいきます。
HogeController.php
<?php
...
$from_date = Input::get('from_date');
$end_date = Input::get('end_date');
$data['contributions'] = Contribution::getRanking($from_date, $end_date)->paginate(20);
$data['params'] = array(
'from_date' => $from_date,
'end_date' => $end_date
);
return View::make('hoge', $data);
hoge.blade.php
{* appendsにarrayで追加したいパラメータを渡します *}
{{$contributions->appends($params)->links()}}
これで無事2ページ目以降、下記のようなURLになったと思います。
http://hoge.com/contributions?from_date=xxxx-xx-xx&end_date=xxxx-xx-xx&page=2