CActiveRecordMetaData
优质
小牛编辑
136浏览
2023-12-01
所有包 | 属性 | 方法
CActiveRecordMetaData表示一个活动记录类的源数据。
源码: framework/db/ar/CActiveRecord.php#2258 (显示)
源码: framework/db/ar/CActiveRecord.php#2307 (显示)
源码: framework/db/ar/CActiveRecord.php#2322 (显示)
源码: framework/db/ar/CActiveRecord.php#2334 (显示)
包 | system.db.ar |
---|---|
继承 | class CActiveRecordMetaData |
源自 | 1.0 |
版本 | $Id: CActiveRecord.php 3533 2012-01-08 22:07:55Z mdomba $ |
源码 | framework/db/ar/CActiveRecord.php |
公共属性
隐藏继承属性
属性 | 类型 | 描述 | 定义在 |
---|---|---|---|
attributeDefaults | array | 属性默认值 | CActiveRecordMetaData |
columns | array | 表的列 | CActiveRecordMetaData |
relations | array | 关系列表 | CActiveRecordMetaData |
tableSchema | CDbTableSchema | 表结构信息 | CActiveRecordMetaData |
公共方法
隐藏继承方法
方法 | 描述 | 定义在 |
---|---|---|
__construct() | 构造函数。 | CActiveRecordMetaData |
addRelation() | 增加一个关系。 | CActiveRecordMetaData |
hasRelation() | 检查是否有一个带有指定名称定义的关系。 | CActiveRecordMetaData |
removeRelation() | 删除一个带有指定名称的关系。 | CActiveRecordMetaData |
属性详细
attributeDefaults 属性 public array $attributeDefaults;属性默认值
columns 属性 public array $columns;表的列
relations 属性 public array $relations;关系列表
tableSchema 属性 public CDbTableSchema $tableSchema;表结构信息
方法详细
__construct() 方法public void __construct(CActiveRecord $model) | ||
$model | CActiveRecord | 模型实例 |
publicfunction__construct($model)
{
$this->_model=$model;
$tableName=$model->tableName();
if(($table=$model->getDbConnection()->getSchema()->getTable($tableName))===null)
thrownewCDbException(Yii::t('yii','Thetable"{table}"foractiverecordclass"{class}"cannotbefoundinthedatabase.',
array('{class}'=>get_class($model),'{table}'=>$tableName)));
if($table->primaryKey===null)
{
$table->primaryKey=$model->primaryKey();
if(is_string($table->primaryKey)&&isset($table->columns[$table->primaryKey]))
$table->columns[$table->primaryKey]->isPrimaryKey=true;
elseif(is_array($table->primaryKey))
{
foreach($table->primaryKeyas$name)
{
if(isset($table->columns[$name]))
$table->columns[$name]->isPrimaryKey=true;
}
}
}
$this->tableSchema=$table;
$this->columns=$table->columns;
foreach($table->columnsas$name=>$column)
{
if(!$column->isPrimaryKey&&$column->defaultValue!==null)
$this->attributeDefaults[$name]=$column->defaultValue;
}
foreach($model->relations()as$name=>$config)
{
$this->addRelation($name,$config);
}
}
构造函数。
addRelation() 方法 (可用自 v1.1.2)public void addRelation(string $name, array $config) | ||
$name | string | $name 关系名称。 |
$config | array | $config 相关参数。 |
{return} | void |
publicfunctionaddRelation($name,$config)
{
if(isset($config[0],$config[1],$config[2]))//relationclass,ARclass,FK
$this->relations[$name]=new$config[0]($name,$config[1],$config[2],array_slice($config,3));
else
thrownewCDbException(Yii::t('yii','Activerecord"{class}"hasaninvalidconfigurationforrelation"{relation}".Itmustspecifytherelationtype,therelatedactiverecordclassandtheforeignkey.',array('{class}'=>get_class($this->_model),'{relation}'=>$name)));
}
增加一个关系。
$config 是一个带有三个元素的数组: 关系类型,相关的活动记录类和外键。
public boolean hasRelation(string $name) | ||
$name | string | $name 关系的名称。 |
{return} | boolean |
publicfunctionhasRelation($name)
{
returnisset($this->relations[$name]);
}
检查是否有一个带有指定名称定义的关系。
removeRelation() 方法 (可用自 v1.1.2)public void removeRelation(string $name) | ||
$name | string | $name |
{return} | void |
publicfunctionremoveRelation($name)
{
unset($this->relations[$name]);
}
删除一个带有指定名称的关系。