Laravel 6.0でページネーションの設定方法
Laravel 6.0でページネーションを設定する方法を記載します。
ページネーションは、一覧ページを作成する際に表示件数が多い場合に利用します。
(下記のようなやつですね。)
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を修正することで、表示方法のカスタマイズが可能です。
以上です。
読んでいただきありがとうございます。