好的,修复了,这就是我所做的:
由于 ADmad 友好地指出我正在创建一个无限循环,因此我执行了以下操作:
/**********************************
/Lib/Error/AppExceptionRenderer.php
***********************************/
App::uses('ExceptionRenderer', 'Error');
class AppExceptionRenderer extends ExceptionRenderer {
public function error400($error) {
/***********************
INSERT MY OWN MAGIC HERE
***********************/
$message = $error->getMessage();
if (Configure::read('debug') == 0 && $error instanceof CakeException) {
$message = __d('cake', 'Not Found');
}
$url = $this->controller->request->here();
$this->controller->response->statusCode($error->getCode());
$this->controller->set(array(
'name' => $message,
'url' => h($url),
'error' => $error,
'_serialize' => array('name', 'url')
));
$this->_outputMessage('error400');
}
}
而且我还发现我必须将其添加到 /Config/core.php
Configure::write('Exception', array(
'handler' => 'ErrorHandler::handleException',
'renderer' => 'AppExceptionRenderer',
'log' => true
));
如果要包含组件,请引用 ADmad:
“异常渲染器引用了控制器,它是 CakeErrorController 的一个实例。使用$this->controller->Components->load()来加载您的组件。”