要点
paginatorComponentを利用する。
つまり、$this->Paginator 経由でやりくりする。
前提
本記事で取り扱うcakePHPのバージョンはcakePHP2系列の話です。
注意点
cakePHPにはページネーションの実装が2つ存在します。
- (おそらく)Controllerへの実装
- Componentへの実装
これらの違いを意識してサンプルコードを読まないと、思ったようにコードが動かずに頭を悩ませます。
対策
新しい実装はComponentの方の実装なのでそれを利用します。
以上から適当に抜粋して利用方法を記載します。
準備
ページネーションを利用したいコントローラー内でPaginatorコンポーネントの利用を宣言します。
public $components = array('Paginator');
設定と利用
データ取得の設定は以下のように行います。
public function index(){
$this->Paginator->setting = array('必要な設定');
$this->set('page',$this->Paginator->paginate('対象モデル'));
}
また複数のモデルに対してページネーションを行いたい場合は
public function index(){
$this->Paginator->setting['対象モデル1'] = array('必要な設定');
$this->Paginator->setting['対象モデル2'] = array('必要な設定');
$this->set('page1',$this->Paginator->paginate('対象モデル1'));
$this->set('page2',$this->Paginator->paginate('対象モデル2'));
}