スポンサードリンク

CakePHP
CakePHP

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を呼び出して

設定を上書きしてしまえばいいです。

スポンサードリンク