CakePHP Pagenatorの使い方まとめ ITかあさん

ITかあさん

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")  
                     );

こんなもんかな?もしあれば今後追加します。

初夏のJavaScript祭 in サーキュレーションビル ForPro