Spec-Zone.ru › Yii 1.1

CActiveRecordMetaData

Пакет system.db.ar
Наследование класс CActiveRecordMetaData
С момента 1.0
Исходный код framework/db/ar/CActiveRecord.php
CActiveRecordMetaData представляет метаданные для класса Active Record.

Общественные свойства

Свойство Тип Описание Определено в
attributeDefaults массив Значения по умолчанию атрибутов CActiveRecordMetaData
columns массив Столбцы таблицы CActiveRecordMetaData
relations массив Список отношений 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 экземпляр модели
Исходный код: framework/db/ar/CActiveRecord.php#2384 (показать)
public function __construct($model)
{
    
$this->_modelClassName=get_class($model);

    
$tableName=$model->tableName();
    if((
$table=$model->getDbConnection()->getSchema()->getTable($tableName))===null)
        throw new 
CDbException(Yii::t('yii','The table "{table}" for active record class "{class}" cannot be found in the database.',
            array(
'{class}'=>$this->_modelClassName,'{table}'=>$tableName)));
            
    if((
$modelPk=$model->primaryKey())!==null || $table->primaryKey===null)
    {
        
$table->primaryKey=$modelPk;
        if(
is_string($table->primaryKey) && isset($table->columns[$table->primaryKey]))
            
$table->columns[$table->primaryKey]->isPrimaryKey=true;
        elseif(
is_array($table->primaryKey))
        {
            foreach(
$table->primaryKey as $name)
            {
                if(isset(
$table->columns[$name]))
                    
$table->columns[$name]->isPrimaryKey=true;
            }
        }
    }
    
$this->tableSchema=$table;
    
$this->columns=$table->columns;

    foreach(
$table->columns as $name=>$column)
    {
        if(!
$column->isPrimaryKey && $column->defaultValue!==null)
            
$this->attributeDefaults[$name]=$column->defaultValue;
    }

    foreach(
$model->relations() as $name=>$config)
    {
        
$this->addRelation($name,$config);
    }
}

Конструктор.

addRelation() метод (доступен с версии 1.1.2)

public void addRelation(string $name, array $config)
$name строка $name Имя отношения.
$config массив $config Параметры отношения.
{return} void
Исходный код: framework/db/ar/CActiveRecord.php#2434 (показать)
public function addRelation($name,$config)
{
    if(isset(
$config[0],$config[1],$config[2]))  // relation class, AR class, FK
        
$this->relations[$name]=new $config[0]($name,$config[1],$config[2],array_slice($config,3));
    else
        throw new 
CDbException(Yii::t('yii','Active record "{class}" has an invalid configuration for relation "{relation}". It must specify the relation type, the related active record class and the foreign key.', array('{class}'=>$this->_modelClassName,'{relation}'=>$name)));
}

Добавляет отношение.

$config — массив с тремя элементами: тип отношения, связанный класс Active Record и внешний ключ.

hasRelation() метод (доступен с версии 1.1.2)

public boolean hasRelation(string $name)
$name строка $name Имя отношения.
{return} булево
Исходный код: framework/db/ar/CActiveRecord.php#2449 (показать)
public function hasRelation($name)
{
    return isset(
$this->relations[$name]);
}

Проверяет, существует ли отношение с указанным именем.

removeRelation() метод (доступен с версии 1.1.2)

public void removeRelation(string $name)
$name строка $name
{return} void
Исходный код: framework/db/ar/CActiveRecord.php#2461 (показать)
public function removeRelation($name)
{
    unset(
$this->relations[$name]);
}

Удаляет отношение с указанным именем.

© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc/api/1.1/CActiveRecordMetaData

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API