0

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

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

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

4

3 回答 3

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绝对没有任何数据库访问权限,否则您将陷入无限重定向循环
于 2013-09-16T19:50:33.713 回答
0

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

于 2013-09-16T13:54:41.040 回答
-1

您可以在组件数组中设置以下

'cache' => array('class' => 'system.caching.CDbCache'),
于 2013-09-16T13:44:18.037 回答