Laravelのページネーション【現役エンジニアが解説】

PROGRAM

今回は、Laravelのページネーションについて、簡単に解説していきます。

コントローラ側の実装

Laravelではページネーションの仕組みが用意されています。

use Illuminate\Pagination\Paginator;

上記のように使用するコントローラの一番上でPaginatorをuseしておきます。

$users = User::paginate(10);
return view('user.index')->with('users',$users);

あとは上記のようにpaginateメソッドの引数に表示件数を指定し、戻り値をビューに渡すだけです。

ビュー側の実装

ビューでは受け取ったデータを表示します。

<ul>
	@foreach($users as $user)
		<li>
			{{ $user->name }}
		</li>
	@endforeach
</ul>

{{ $users->links() }}

上記のように繰返処理を使って表示すれば良いでしょう。

さらにlinksメソッドを使って、ページ番号を表示させます。

ページネーションのカスタマイズ

ページネーションのカスタマイズも可能です。

php artisan vendor:publish --tag=laravel-pagination

上記のようにphp artisanコマンドでページネーション用のファイルをエクスポートします。

{{ $users->links('original_pagination.blade.php') }}

resources/views/vendor/paginationディレクトリにテンプレートができるため、コピーして別名で保存し、上記のようにlinksメソッドの引数で対象のBladeを指定するとカスタマイズされた内容で表示されます。