在我的项目中,有一条 CDbexception 消息
CDbCommand 执行 SQL 语句失败:SQLSTATE[42S02]: Base table or view not found: 1146 Table 'xxx.xxx' 不存在
当数据库表不存在时在网页上播放 dsiplay,在这里我想使用客户页面而不是 CDBexception 页面,但现在我发现 Yii errorHandler 无法捕获此错误。
那么在 YII 框架中应该配置哪些额外的配置呢?
你可以做几件事:
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指南!