php - 当 Yii 中的数据库连接失败时,如何重定向到特定页面?

标签 php yii

我不想在数据库连接失败时看到 Yii 错误信息。 当 Yii 框架的数据库连接失败时,如何重定向到特定页面? 谢谢。

最佳答案

要捕获所有 CDbConnection 错误,您需要在 config/main.php 中启用错误处理程序

'components'=>array('errorHandler'=>array('errorAction'=>'site/error', ), ),

然后,在您的 Controller (或所有 Controller 的抽象基类)中,您需要定义一个操作来完成重定向。

public function actionError() {
    if($error=Yii::app()->errorHandler->error)
        if ( CDbException == $error->type) {
           $this->redirect(array("site/error_message")); }
    //  call the parent error handler, but something doesn't feel right about this:
    else
        parent::actionError(); }

或者,您可以只渲染自定义 View :

public function actionError() {
    if($error=Yii::app()->errorHandler->error)
        if ( CDbException == $error->type) {
           $this->render('error', $error); } }

参见 Yii docs了解更多详情。

关于php - 当 Yii 中的数据库连接失败时,如何重定向到特定页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7367874/

相关文章:

javascript - 如何在js中隐藏文本字段?

php - Tablesorter 重新加载 tbody 或仅在数据库更改/更新时重新加载该行

php - 从 MySQL 转换 Yii 查询

当在类中定义魔术方法 __get 和 __set 时,PHP 函数 Empty 不起作用

json - Yii Restful API 将在 POST 上创建,但不会填充任何变量

php - Laravel 数据透视表具有多列,需要稍后插入

javascript - 删除 HTML 中的部分标记

php - 用 OpenSSL 替换 Mcrypt

layout - 如何在 yii 中将数组从 Controller 发送到布局 header ?

php - 我如何在 Yii 中模拟 ActiveRecord 对象?