【发布时间】:2012-05-31 21:29:40
【问题描述】:
我一直在这里阅读以下问题:CakePHP 2.0 - How to make custom error pages?
关于在 CakePHP 2.0+ 中为异常处理创建自定义视图,并一直使用它作为基础,在我自己的应用程序中开始做同样的事情,因此开始了我自己的问题。
但是我没有遵循逻辑。例如 Throw NotFoundException 是如何知道调用错误控制器中的 notFound 方法的,因为我在命名方面看不到任何直接关系......除非我错过了重点?
无论如何,我希望添加 404、403 和 401 错误,然后能够创建自定义视图并在整个应用程序中使用异常处理程序调用它们。
谁能更清楚地说明这一点?我正在使用最新版本的 Cake 2.1
所以我有以下代码:
App::uses('ExceptionRenderer', 'Error');
class AppExceptionRenderer extends ExceptionRenderer {
public function notFound($error) {
$this->controller->redirect(array('controller' => 'errors', 'action' => 'error404'));
}
}
我想用呈现自定义错误视图来替换该重定向:
我试过了:
$this->controller->layout = null;
$this->controller->render('/Errors/error404');
但这只是显示一个空白页面...任何人都可以帮助我,因为我不想进行重定向并且更愿意遵循约定并在出现错误时使用相同的 url 呈现实际视图。
更新: 还注意到只有在控制器中手动调用异常时才会调用自定义视图,而不是针对domain.com/garbageurl 或其他错误等实际错误...所以它没有似乎没有按照我的想法做!
【问题讨论】: