我不希望在数据库连接失败时看到Yii错误消息。 当数据库连接因Yii框架失败时,如何重定向到特定页面? 感谢。
答案 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。