Laravelのページネーションをさらにカスタムする
Laravelのページネーションは便利なんだけど、デフォルトだと以下みたいになる。
私の環境ではbootstrapテーマのbootswatchを使っているので、それに会わせたい。bootswatchの場合、ulタグのclassが「pagination」になるのだ。
ちょうどphp - How to implement custom pagination in Laravel? - Stack Overflowに方法が書いてあった。ページネーション用のbladeがあればできるみたい。
まずapp/views直下にslider.phpを新規作成する。
<?php $presenter = new Illuminate\Pagination\BootstrapPresenter($paginator); ?> <?php if ($paginator->getLastPage() > 1): ?> <ul class="pagination"> <?php echo $presenter->render(); ?> </ul> <?php endif; ?>
次にapp/config/views.phpを編集して、slider.phpを読み込むようにする。
/* |-------------------------------------------------------------------------- | Pagination View |-------------------------------------------------------------------------- | | This view will be used to render the pagination link output, and can | be easily customized here to show any view you like. A clean view | compatible with Twitter's Bootstrap is given to you by default. | */ #'pagination' => 'pagination::slider', 'pagination' => 'slider', ←この行を追加するだけ
これで以下の画像みたいにお望みのページネーションができた。