ふたりはララベル (Laravel PHP Framework)

PHPフレームワークのLaravelの体験記を書いていきます。こんなタイトルのブログですが萌え系アニメは一秒たりとも観たことがありません。

Laravelのページネーションをさらにカスタムする

Laravelのページネーションは便利なんだけど、デフォルトだと以下みたいになる。

f:id:laravel:20131104104347p:plain
私の環境では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', ←この行を追加するだけ

これで以下の画像みたいにお望みのページネーションができた。
f:id:laravel:20131104104352p:plain