码迷,mamicode.com
首页 > 数据库 > 详细

Yii ExtendedActiveRecord 增强版 ActiveRecord 增加多数据库连接绑定功能

时间:2014-08-01 15:43:31      阅读:211      评论:0      收藏:0      [点我收藏+]

标签:blog   使用   io   数据   cti   ar   div   new   

ExtendedActiveRecord 继承自 CActiveRecord,因此基础功能与 CActiveRecord 无异

为添加对多数据库连接的支持,增加了对 connectionName() 方法的回调,用法跟已有的 tableName() 方法一致,返回数据库连接组件名称的字符串。

如果不定义该方法,则使用默认数据库连接(db)

源码如下:

class ExtendedActiveRecord extends CActiveRecord
{
    public static $db = array();

    /**
     * @return CDbConnection
     * @throws CDbException
     */
    public function getDbConnection()
    {
        $componentName = $this->connectionName();
        if (isset(self::$db[$componentName])) {
            return self::$db[$componentName];
        } else {
            self::$db[$componentName] = Yii::app()->getComponent($componentName);
            if (self::$db[$componentName] instanceof CDbConnection)
                return self::$db[$componentName];
            else {
                $message = ‘Active Record keyword requires a "‘ . $componentName . ‘" CDbConnection application component.‘;
                Yii::log($message, CLogger::LEVEL_ERROR, ‘extended‘);
                throw new CDbException(Yii::t(‘yii‘, $message));
            }
        }
    }

    public function connectionName()
    {
        return ‘db‘;
    }
}

 

实例:

class SomeModelClass extends ExtendedActiveRecord
{
    ......

    public function connectionName() {
        return ‘some-db-connection‘;
    }

    ......
}

  

 

Yii ExtendedActiveRecord 增强版 ActiveRecord 增加多数据库连接绑定功能,布布扣,bubuko.com

Yii ExtendedActiveRecord 增强版 ActiveRecord 增加多数据库连接绑定功能

标签:blog   使用   io   数据   cti   ar   div   new   

原文地址:http://www.cnblogs.com/oshine/p/3884941.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!