見出し画像

Laravel 6.0でページネーションの設定方法

Laravel 6.0でページネーションを設定する方法を記載します。

ページネーションは、一覧ページを作成する際に表示件数が多い場合に利用します。

(下記のようなやつですね。)

スクリーンショット 2019-09-24 9.27.58


Controllerの設定

まずはControllerに記載します。

$posts = Post::paginate(15);

return view('posts', [
   'posts' => $posts,
]);

paginateメソッドを利用します。下記箇所ですが

pagenate(15)

カッコ内の数字が1ページに表示する件数になります。今回の場合は1ページに15件表示されるようになります。


Viewsの設定

ページネーションを表示させたい箇所に下記記載します。

{{ $posts->links() }}

これでページネーションが表示されるようになります。


ページネーション表示のカスタマイズ方法

ページネーションのテンプレートをカスタマイズすることもできます。下記にファイル作成します。

resources/views/pagination/default.blade.php

default.blade.php にテンプレートを記載します。サンプルとして下記のように記載します。

@if ($paginator->lastPage() > 1)
<nav aria-label="Page navigation example">
 <ul class="pagination justify-content-center">
   @for ($i = 1; $i <= $paginator->lastPage(); $i++)
       <li class="page-item {{ ($paginator->currentPage() == $i) ? ' active' : '' }}">
           <a class="page-link" href="{{ $paginator->url($i) }}">{{ $i }}</a>
       </li>
   @endfor
 </ul>
</nav>
@endif
BootstrapのPaginationを参考にしています。

このファイル内でHTMLやCSSを修正することで、表示方法のカスタマイズが可能です。

以上です。

読んでいただきありがとうございます。