これがうまくいくかどうかはわかりませんが、これが私がやったことです。私は(AppControllerで)__construct()
関数に設定しました:
function __construct() {
parent::__construct();
if ($this->name == 'CakeError') {
$this->layout = 'default';
$this->constructClasses();
$this->beforeFilter();
$this->beforeRender();
}
}
繰り返しますが、あなたの方法は異なるかもしれませんが、それが私の実装です。
また、定義済みのエラー ハンドラで AppError.php ファイルを使用して設定することもできます。私のアプローチはCake 1.3用だったので、AppErrorファイルがCake2でどのように異なるかはわかりません.
<?php
class AppError extends ErrorHandler {
function error403($params) {
extract($params, EXTR_OVERWRITE);
if (!isset($url)) {
$url = $this->controller->here;
}
$this->controller->helpers = array_merge( $this->controller->helpers, array( 'Asset.Asset', 'Auth' ) );
$url = Router::normalize($url);
$this->controller->set(array(
'code' => '403',
'name' => __('Permission Denied', true),
'message' => $message,
'base' => $this->controller->base
));
$this->_outputMessage('error403');
}
}