これは私が CakePHP 2.2.2 で行ったことです: core.php の例外レンダラーを変更し、親のメソッドの 1 つだけをオーバーライドする MyExceptionRenderer で ExceptionRenderer を拡張しました。ディストリビューションには既にファイル app/View/Layouts/error.ctp が含まれているので、少し編集しました。
また、 CakeError が非推奨になっていることに気付いたので、これでうまくいきました。
app/Config/core.php:
Configure::write('Exception', array(
'handler' => 'ErrorHandler::handleException',
'renderer' => 'MyExceptionRenderer',
'log' => true
));
アプリ/ライブラリ/エラー/MyExceptionRenderer.php:
App::uses('ExceptionRenderer', 'Error');
class MyExceptionRenderer extends ExceptionRenderer {
protected function _outputMessage($template) {
$this->controller->layout = 'error';
parent::_outputMessage($template);
}
}