0

我最近将我的 1.3 蛋糕应用程序升级到 2.0,我正在尝试重做我的 app_error 代码。

在 Cake 1.3 中,只需创建一个 app_error.php 文件,将它放在我的应用根目录中,然后覆盖内置的 error404() 和 missingController() 操作。

这是我的旧 1.3 /app/app_error.php 文件:http ://pastebin.com/beWZD9PJ

当有人使用预定义的“别名”URL 到达该站点时,它会启动一些代码,然后相应地重定向它们。

我只需要它在 Cake2.0 中工作,我看到手册告诉我它全部改变了,但我找不到这样的具体案例。谁能帮帮我,所以error404代码开始了?

非常感谢

4

3 回答 3

5

CakePHP 2.0 中的 4xx 和 5xx 错误现在是异常,因此您需要自定义异常渲染器或处理程序。从本节阅读到底部http://book.cakephp.org/2.0/en/development/exceptions.html#exception-renderer

于 2012-10-03T09:49:32.527 回答
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;
?>
于 2012-11-26T06:41:29.053 回答
1

这很简单。

使用 cakephp 2,您必须在 AppController 中添加此功能:

public function appError($error) {
    $this->redirect('/');
}

在这里,例如,我们将所有错误重定向到索引页面。

于 2013-05-29T23:22:03.867 回答