爱程序网

Yii ExtendedActiveRecord 增强版 ActiveRecord 增加

来源: 阅读:

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';    }    ......}

  

 

关于爱程序网 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助