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

时间:2011-09-09 21:55:27

标签: php yii

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

2 个答案:

答案 0 :(得分:6)

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

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

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

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(); }

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

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

有关详细信息,请参阅Yii docs

答案 1 :(得分:1)

你可以这样做:

try { 
    $connection=new CDbConnection($dsn,$username,$password);
} catch(Exception $e) {
    $this->redirect(array('controller/action'));
}

您还可以通过重定向传递其他信息,请参阅here