cakeErrorのレイアウトをすべて変更する
cakeErrorにはerror404だけでなくmissingViewなどたくさんアクションがあります。これらの使うレイアウトを一気に変更したい場合に有効な方法です。
app_error.php
<?php App::import('Core', 'Error'); class AppError extends ErrorHandler { public function dispatchMethod($method, $messages) { $this->controller->layout = 'error'; parent::dispatchMethod($method, $messages); } }
ついでに、なぜ用意されていないのか理解に苦しむ error403も追加。
<?php public function error403($params) { extract($params, EXTR_OVERWRITE); if (!isset($url)) { $url = $this->controller->here; } $url = Router::normalize($url); $this->controller->header("HTTP/1.0 403 Forbidden"); $this->controller->set(array( 'code' => '403', 'name' => __('Forbidden', true), 'message' => h($url), 'base' => $this->controller->base )); $this->_outputMessage('error403'); }
viewはerror404.ctpをコピーして使ってね。