0

在我的项目中,有一条 CDbexception 消息

CDbCommand 执行 SQL 语句失败:SQLSTATE[42S02]: Base table or view not found: 1146 Table 'xxx.xxx' 不存在

当数据库表不存在时在网页上播放 dsiplay,在这里我想使用客户页面而不是 CDBexception 页面,但现在我发现 Yii errorHandler 无法捕获此错误。

那么在 YII 框架中应该配置哪些额外的配置呢?

4

1 回答 1

0

你可以做几件事:

1)用try catch包围可能引发错误的代码:

try {
    //your sql code
} catch(CDbException $e) {
    // you redirect the user to the appropriate page, ...
}

2)使用内置错误处理程序

您在配置文件中激活它:

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

在配置中,我们使用了该操作site/error,因此您需要将其包含在您的项目中。您可以创建此方法,如:

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

ps:代码来自yii指南!

于 2013-10-23T07:54:23.000 回答