Pocket

ページネーションを簡単に設定する

ページネーションってご存知です?検索エンジンなどで検索結果がたくさんあるとき1ページにすべての検索結果を表示せずに、小分け表示し次のp@ページにジャンプさせるアレです。COMTOPIAブログだと下図のような感じ。

ページネーション

昔はこのページネーターを作るだけで、ほんとに苦労しました。Laravelを使うと、もうホントに3分でページネーションが完成する。ララベルを含む PHPフレームワーク考えた人マジでエライ!

Controller側の記述

例えば、こんな感じ。
formタグでkeywordというデータをpostしてきたとしましょう。Userテーブルのnameカラムをkeywordで検索します。
そして3行目がミソです。$user変数に30個だけ検索データを代入してやる。
returnでuser_listというビューを表示 & 返り値に$userを設定。
$query=\App\User::query();
$query->where('name','=',Input::get('keyword'));
$user=$query->paginate(30);
return View::make('user_list')->with('user',$user);
コントローラーの設定はたったこれだけ。では次はuser_list.blade.phpの記述です。

blade側の記述

では先ほど、returnで設定したuser_list側の記述。
取得したデータは$user変数に収められていますので、例えば以下の様に記述。
@foreach($user as $key)
  {{$key->name}}<br />
  {{$key->mail}}<br />
  {{$key->address}}<br />
  {{$key->phone}}<br />
@endforeach
そして@endforeachの後に 次の一文を。
{!!$user->appends(Input::except('page'))->render()!!}
なんと、この一文だけでページネーションが表示されるんです。超便利。あとはcssなりで自分なりにカスタマイズしてやればOKですね!

パソコンのトラブルはこちらへ
Pocket

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です