Laravel5.4のページネーションを使ってみる

フレームワークのページネーションって設定が面倒なイメージが強かったけど、Laravelのページネーションは簡単過ぎて感動した。

コントローラ

paginateメソッドの引数に1ページに表示したい件数を設定する。
今回は、User::all()で全件取得していたところを User::paginate(15) に書き換えただけ。

class UserController extends Controller
{
    public function index()
    {
        // 会員一覧を15件区切りで取得する
        // $users = User::all(); allをpaginateに書き換える
        $users = User::paginate(15);
        
        // ビューに取得結果を渡す
        return view('user.index', ['users' => $users]);
    }
}

ビュー

あとはビューテンプレートでlinksメソッドを呼べば完成!

目次

ページネーションのHTMLを表示する

{{ $users->links() }}

GETパラメータに任意のパラメータを追加する

下記の場合、リンクURLが「?name=田中&page=2」のようになる。

{{ $users->appends(['name' => '田中'])->links() }}

その他のページネーション情報を取得する

{{ $users->count() }} 現在のページに表示されている件数
{{ $users->perPage() }} 1ページに表示する件数(設定値)
{{ $users->total() }} 要素の合計件数
{{ $users->currentPage() }} 現在のページナンバー
{{ $users->lastPage() }} 最後のページナンバー
{{ $users->firstItem() }} 現在表示しているページの最初の要素のID
{{ $users->lastItem() }} 現在表示しているページの最後の要素のID
{{ $users->hasMorePages() }} 次のページがあるかどうか
{{ $users->nextPageUrl() }} 次のページのURL
{{ $users->previousPageUrl() }} 前のページのURL
よかったらシェアしてね!

この記事を書いた人

目次
閉じる