在我的项目中,有一条CDbexception消息
数据库表不存在时,网页上的CDbCommand无法执行SQL语句:SQLSTATE [42S02]:找不到基表或视图:1146表'xxx.xxx'不存在
dsiplay, 在这里,我想使用客户页面而不是CDBexception页面,但现在我发现Yii errorHandler无法捕获此错误。
那么在YII框架中应该配置哪些附加配置?
答案 0 :(得分:0)
你可以做几件事:
1)使用try catch包围可能引发错误的代码:
try {
//your sql code
} catch(CDbException $e) {
// you redirect the user to the appropriate page, ...
}
您可以在配置文件中激活它:
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指南!