クエリー結果でページネーションを実装する


database eloquent paginator

 悩み事

クエリー結果を利用してページネーションを実装したい

 解決方法

クエリービルダー、Eloquentを利用している場合は、
結果を取得する場合に簡単にページネーションを実装する事が出来ます

第一引数で1ページあたりの返却数を指定する事が出来ます
指定しない場合は、デフォルトで15となります

// 15レコード返却
\DB::table('table')->paginate();
// 25レコード返却
\DB::table('table')->paginate(25);

通常のクエリー結果を取得する場合と同様に、
第二引数に必要なカラムを指定する事が可能です

// 25レコード返却
\DB::table('table')->paginate(25, ['id', 'title']);

それぞれPaginatorオブジェクトが返却されます

 アドバイス

Bladeテンプレートでページネーションを描画する際は、
次の様に記述します

モデルやコントローラーなど

$page = \DB::table('table')->paginate(25, ['id', 'title']);
return \View::make('template', ['page' => $page]);

Bladeテンプレート

{{$page->links()}}

ページネーションに引数を与える場合は次の様に指定する事が出来ます

{{$list->appends(['keywords' => Input::get('keywords')])->links()}}

Author:Yuuki Takezawa