ページ制御 — CakePHP Cookbook 2.x ドキュメント
であるように存在しないページにアクセスされた時の処理を書いてみました
試行錯誤した結果、これで..
$this->Paginator->settings = $paginate;
try {
$companies = $this->Paginator->paginate($mainModel);
} catch (NotFoundException $e) {
$whiteList = $this->Paginator->whitelist;
$key = array_search('page', $whiteList);
if ($key !== false) {
unset($whiteList[$key]);
}
$this->Paginator->whitelist = $whiteList;
$companies = $this->Paginator->paginate();
}
whiteListからpageを外してpageの指定を無視させてます
アドレスが
http://sample.net/page:2
とか残ったままですが、最初のページ(page:1)が表示されます
うーん、もっといいやりかたがあるような気がします