No.385
【CakePHP3】paginatorのデフォルトソート条件
paginatorの機能は生かしつつデフォルトソートをしたい
ぱっと思いつくのはfind時にorderや無名関数を使うことだろうけど、そうするとソート順が固定になってしまう。
もちろんpaginatorのソート指示があるときは無視するなど、判定式で処理を分岐させればできるけど、いまいちスマートじゃない。
そんなときはCakePHP2のころからの伝統、$this->paginate
を利用すればOK。
設定
コントローラーのプロパティ$paginate
のorder
項目にソート順を記述してあげれば良い。
public $paginate = [
...
'order' => [
'デフォルトソート対象' => 'asc or desc'
],
...
];
もちろんパラメータsort
が来ればそちらが優先される。ご安心。
参考:その他の設定
他にも$paginate
はいろいろなデフォルト設定ができる。
など。