ページネーションを作る際は、
- SELECT文で取得できる総件数
- SELECT文で一度に取得する件数
- 現在のページ数
- 現在のページ数に応じて変化する、SELECT文で取得する記事の範囲(LIMIT句)
- ページごとのページネーションボタンの設置
など、色々と考えないといけないので結構面倒に思っていたが、Laravelにはページネーションを作る機能が組み込まれているので簡単に作成できる。
Laravel 5.8 データベース:ペジネーション
Laravelでページネーションを作る方法
app/Http/Controllers/PostController.php
use App\Post;
public function index() {
$posts = Post::paginate(5); // 1ページ毎に取得する件数が5件になる
}
resources/views/post/index.blade.php
{{@foreach($posts as $post)}}
@endforeach
{{ $posts->links() }}
{{ $posts->appends(request()->input())->links() }}