标签: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