Yii:如果DB连接失败,如何捕获错误并重定向

时间:2013-09-16 13:01:16

标签: yii

有时我的应用无法连接到我的数据库。

如何捕获并重定向到统计信息页?

CDbConnection failed to open the DB connection: SQLSTATE[42000] [1049] Unknown database 'given_db'

3 个答案:

答案 0 :(得分:4)

这不是最干净的解决方案,但您可以创建自定义DbConnection组件:

class DbConnection extends CDbConnection
{
    public function open()
    {
        try {
            parent::open();
        } catch(CDbException $e) {
            Yii::app()->request->redirect(array('site/maintenance'));
        }
    }
}

然后将其配置为db组件:

'components' => array(
    'db' => array(
        'class' => 'DbComponent',

缺点是:

  • 仅适用于网络并破坏您的控制台应用
  • 要求site/maintenance绝对没有任何数据库访问权限,或者您最终会进入无限重定向循环

答案 1 :(得分:0)

你不能只创建自己的500错误页面吗? 请查看此信息以获取更多信息:http://www.yiiframework.com/doc/guide/1.1/en/topics.error#displaying-errors

答案 2 :(得分:-1)

您可以在组件数组

中进行设置
'cache' => array('class' => 'system.caching.CDbCache'),