
CakePHPでページネーションをよく使っているんですが、
ページネーションの設定をアクションごとに
変更する方法です。
ページネーションの設定の場所
以前にもページネーションを設定してました。
初めての[CakePHP2.x]での開発、そして挫折するまで日記~その25 ページネーションを使ってみる
初めての[CakePHP2.x]での開発、そして挫折するまで日記~その27 検索結果をページネーションで表示させる
通常のページネーションの設定は
コントローラー内でアクションとは別に設定します。
<?php
class PostsController extends AppController {
//Paginationの設定
public $paginate = array(
//モデルの指定
'Post' => array(
'limit' => 20,
'order' => array('craeted' => 'asc'),
)
);
public function index(){
・・・
}
?>
こんな感じですね。
このままのページネーションの設定で問題ないアクションならいいんですが
このアクションは作成日の降順で並べたいとか
このアクションは表示件数を10件にしたいとか
色々条件を変えたい場合があります。
その時は、各アクションごとに
ページネーションの設定を上書きしてしまえばいいという事でした。
ページネーションの上書き
(例)listアクションだけ表示件数を10件で作成日を降順並び変える
public function list(){
//ページネーションの設定
$this->paginate = array(
//モデルの指定
'Post' => array(
'limit' => 10,
'order' => array('craeted' => 'desc')
)
);
・・・
}
こんな感じでアクション内でpaginateを呼び出して
設定を上書きしてしまえばいいです。
