我最近将1.3蛋糕应用程序升级到2.0,我正在尝试重做我的app_error代码。
使用Cake 1.3,它只是创建一个app_error.php文件,将其放入我的应用程序根目录,并覆盖内置的error404()和missingController()操作。
这是我的旧1.3 /app/app_error.php文件:http://pastebin.com/beWZD9PJ
当有人使用预定义的“别名”网址到达网站时,它会引入一些代码,然后相应地重定向它们。
我只需要在Cake2.0中使用它,我看到手册告诉我它全部改变了,但我找不到像这样的特定情况。任何人都可以帮助我,所以error404代码开始了吗?
非常感谢
答案 0 :(得分:5)
CakePHP 2.0中的4xx和5xx错误现在是异常,因此您需要自定义您的异常渲染器或处理程序。请阅读此部分的底部http://book.cakephp.org/2.0/en/development/exceptions.html#exception-renderer
答案 1 :(得分:2)
您可以在Cake 2的控制器中使用以下代码抛出404异常:
throw new NotFoundException(__('Your error text here'));
然后,您只需要APP/View/Errors/error400.ctp
出现与展示相关的内容。 Cake默认包括:
<h2><?php echo $name; ?></h2>
<p class="error">
<strong><?php echo __d('cake', 'Error'); ?>: </strong>
<?php printf(
__d('cake', 'The requested address %s was not found on this server.'),
"<strong>'{$url}'</strong>"
); ?>
</p>
<?php
if (Configure::read('debug') > 0 ):
echo $this->element('exception_stack_trace');
endif;
?>
答案 2 :(得分:1)
很简单。
使用cakephp 2,您必须在AppController中添加此功能:
public function appError($error) {
$this->redirect('/');
}
例如,我们将所有错误重定向到索引页。