【CakePHP3】ページネーションのデザインを指定したらエラー発生!
CakePHP3には「Pagination機能」というのがありますよね。
「前へ」とか「次へ」みたいなボタンを配置して、違うページに遷移する処理を簡単に作れる機能です。
(参考ページ)http://book.cakephp.org/3.0/ja/controllers/components/pagination.html
あの遷移ボタンのデザインを設定する方法が、巷ではよく紹介されています。
(参考ページ)http://book.cakephp.org/3.0/en/views/helpers/paginator.html
それは以下のような方法。
コントローラーに次のようなプロパティを用意して、
public $helpers = [ 'Paginator' => ['templates' => 'paginator-templates'] ];
「/config/paginator-templates.php」のファイルを作成して、そこにお望みのレイアウト設定を書き込むという方法です。
<?php return [ 'prevActive' => '<span class="prev"><a rel="prev" href="{{url}}">{{text}}</a></span> | ', 'prevDisabled' => '', 'nextActive' => '<span class="next"><a rel="next" href="{{url}}">{{text}}</a></span>', 'nextDisabled' => '', 'first' => '<span class="first"><a rel="first" href="{{url}}">{{text}}</a></span> | ', 'last' => '<span class="last"><a rel="last" href="{{url}}">{{text}}</a></span>', 'number' => '<span><a href="{{url}}">{{text}}</a></span> | ', 'current' => '<span class="current">{{text}}</span> | ', ];
しかし上記のように設定したところ、「Error: [RuntimeException] The "Paginator" alias has already been loaded with the following config」というエラーが発生してしまいました・・。
私のCakePHPには「Twitter Bootstrap」を使用できるプラグインを入れているのですが、どうやらその設定とバッティングをしてしまっている様子。
「vendor/friendsofcake/bootstrap-ui/src/View/UIViewTrait.php」のファイルにある以下の記述をコメントアウトしたら、無事自分のデザインが読み込み可能になりました。
public function initializeUI(array $options = []) { ・・・ //$this->loadHelper('Paginator', ['className' => 'BootstrapUI.Paginator']); }
このエラーのせいで今日一日つぶれちゃったよ、は~ん・・・。