CakePHP Pagenatorの使い方まとめ
CakePHP Pagenatorのまとめ
CakePHPに限らず、WEBサイトのプログラムを作っていると、ページネーションは欠かせないですね。
CakePHPのPagenatorにはView側に非常にたくさんのオプションがあるので、まとめてみました。
CakePHP Pagenatorの基本的な使い方
1.3系でも2系でも基本的な使い方は変わりません。View側がほんの少し違うだけです。
Controller
データの取得条件であるconditionsについては適時変更して下さい。
$this->paginate = array( 'conditions'=>array(), 'order' => array('Model.id' => 'desc'), 'limit'=>10,//1ページあたりの表示件数 ); $this->set('datas', $this->paginate('Model'));
ここからはView側をまとめていくよ
ここからが本題。CakePHP Pagenatorのview側のオプションについてです。
なお、CakePHP2系でのサンプルになりますが、それほど違いはありません。
$paginator->next();//1.3 $this->Paginator->next();//2系
基本的な次へ、戻るリンク
基本的な次へ、戻るリンクです。次へリンクのある場合prevクラスが、先にデータがもうない場合はdisabledのクラスが当たります。
echo $this->Paginator->prev('[前へ]', array(), null, array('class' => 'prev disabled')); echo $this->Paginator->next('[次へ]', array(), null, array('class' => 'next disabled'));
出力結果
[前へ]|[次へ]
デフォルトだと、spanタグで囲われていいます。(基本Pagenatorは何でもspanみたいです)
次へ、戻るリンクのタグをspan以外のタグにする
以下のようにすると、spanがpタグに変わります
echo $this->Paginator->prev('[前へ]', array(), null, array('class' => 'prev disabled','tag' => 'p'));
各ページへのリンク
各ページへのリンクタグも囲っているタグはspanなので、tagでspan以外のタグに変更出来ます。
separatorとは区切り文字です。『|』などがいいでしょうし、必要なければ書かなくても問題ないです。
echo $this->Paginator->numbers(array('separator' => '','tag' => 'li'));
カウンター
現在 何件のデータがあって、何ページで、何件中何件のデータを表示しているか
echo $this->Paginator->counter('{:count}件中{:start}-{:end}件({:pages}ページ中{:page}ページ) ');
ページングの次へ、戻るリンクに画像を使う
もちろん画像も使うことが出来ます。
$this->Paginator->next("", array("escape" => false , "tag"=>"span"), "",//off array("escape" => false , "tag"=>"span") );
こんなもんかな?もしあれば今後追加します。