Logicky Blog

Logickyの開発ブログです

cakePHP Paginator ページ番号が大きすぎる場合のエラーの回避

検索ページでPaginatorを使っていると、3ページ目を表示している状態で、検索条件を変更した結果、3ページ目が存在しなくなり、Not Fountエラーが生じるといったことがありました。これはあんまりよろしくないので、Paginatorを確認しました。

queryではなくnameでパラメタをとっている場合は、下記のような感じにすれば、ページが1に設定されます。 try、catchを使って、エラー発生の場合に下記を実行するとエラーが回避されます。

$this->request->params['named']['page'] = 1;
$jobs = $this->paginate('Job', $conditions);