Paginateを利用するときは公式の資料に従って,
class ArticlesController extends AppController { public $paginate = [ 'limit' => 25, 'order' => [ 'Articles.title' => 'asc' ] ]; public function initialize() { parent::initialize(); $this->loadComponent('Paginator'); } }
とするかとおもいますが,ここでPaginateに利用されているパラメータをコントローラ内で取得したいケースがあります.(例えばIndexに一覧表示されている状態でそのままCSVとして出力したいときはOrder OptionのDESC,ASCが欲しかったりします.)
こういうときはparamTypeをクエリストリングとして取得するように明示的に書くと,コントローラ側からのPaginateのパラメータへのアクセスが可能になります.
class ArticlesController extends AppController { public $paginate = [ 'limit' => 25, 'order' => [ 'Articles.title' => 'asc', 'paramType' => 'querystring', // 追加!! ] ]; public function initialize() { parent::initialize(); $this->loadComponent('Paginator'); } }
こうすると,例えば現在Articleをタイトル順に並べているかと思いますが,header付近のアイコンを押して昇順・降順を入れ替えたときはURLにdirectionというパラメータが追加されているかと思います. クエリパラメータとしてPaginateのパラメータを取得したとしても特に何も書き加えなくてもPaginateの機能はそのまま有効です.
うまく活用して見てください.