CakePHPでは、標準のライブラリが充実しているため、わざわざページネーション回りのライブラリを自分で自作したりすることは少ないとおもいますが、今回、基本的な機能はPaginatorHelperを利用しつつ、一部機能をカスタマイズできないかと思い調べました。
結果から言うと、うまく動作させることができず別の方法で対応したのですが、途中結果をブログにまとめてみようと思います。
何はともあれBakeコマンドよりカスタムヘルパークラスを作成します。
cake bake helper CustomPaginator
次に、基本的な機能はPaginatorHelperを使いたいため、CustomPaginatorHelperクラスを一部書き換えます。
use use Cake\View\Helper\PaginatorHelper;
/**
* CustomPaginator helper
*/
class CustomPaginatorHelper extends PaginatorHelper {
}
AppViewに作ったヘルパークラスを読み込ませます。
public function initialize() {
$this->loadHelper('CustomPaginator');
}
こんな感じで書いてみて、とりあえずCustomPaginatorHelper経由で親クラスPaginatorHelper
クラスのfirst($first, array)
関数の動作を確認してみましたが、期待する結果を得られませんでした。
今回のケースでは、空文字を返しているようです。
※ prev
関数も同じように動きませんでした。
さらに原因を探っていると、templater()
関数で取得できるテンプレートが期待する結果になっていないため、ページネーション用リンクが表示されないようです。
また時間がある時に調べてみようと思います。
以上。