[CakePHP] 別モデルでページネーションを(pagination)行う方法

CakePHPのページネーション(ページ送り)で別のモデルのデータを使いたいときは、コントローラに少しの指定をするだけで実現できてしまいます。

自分のモデルを使うのと少しだけ書き方が違うので注意しましょう。

public $uses = array('Post');

public function index() {
    $this->paginate = array('Post' => array('limit' => 3));
    $datas = $this->Paginator->paginate('Post', array(
        'Post.id' => 5
     ));
     $this->set(compact('datas'));
}

まず、$usesに利用するモデル名を記載します。

limitやorderは$this->paginate = array(‘Post’ => array(‘limit’ => 3));という形式で記載。

conditionは上記のソースのように第一引数にモデル名、第二引数に配列で条件を指定していきます。

View側はいつもと同じでOK!



Author: webmaster