Posted at

CakePHP2.xで別モデルのページネーションを行う

More than 5 years have passed since last update.


状況

HogesControllerの中でFugaモデルのデータを取得してページネーションしたい


やり方


基本的なやり方


app/Controller/HogesController.php

    //利用モデルを指定

public $uses = array('Fuga');

public function index() {
$fugas = $this->Paginator->paginate('Fuga'); //引数にモデル名を入れる
$this->set(compact('fugas'));
}



conditionsを指定したい場合

paginateの第二引数に直接書く。ポイントは'conditions' => array(...)とか書かない事。


app/Controller/HogesController.php

    //利用モデルを指定

public $uses = array('Fuga');

public function index() {
$fugas = $this->Paginator->paginate('Fuga', array(
'Fuga.user_id' => 1
));
$this->set(compact('fugas'));
}



limitとかも指定したい場合

$this->paginateに指定。


app/Controller/HogesController.php

    //利用モデルを指定

public $uses = array('Fuga');

public function index() {
$this->paginate = array('Fuga' => array('limit' => 3));
$fugas = $this->Paginator->paginate('Fuga', array(
'Fuga.user_id' => 1
));
$this->set(compact('fugas'));
}


以上。