0 follower

CActiveRecordMetaData

Package system.db.ar
Inheritance class CActiveRecordMetaData
Since 1.0
Version $Id$
Source Code framework/db/ar/CActiveRecord.php
CActiveRecordMetaData represents the meta-data for an Active Record class.

Public Properties

Hide inherited properties

PropertyTypeDescriptionDefined By
attributeDefaults array attribute default values CActiveRecordMetaData
columns array table columns CActiveRecordMetaData
relations array list of relations CActiveRecordMetaData
tableSchema CDbTableSchema the table schema information CActiveRecordMetaData

Public Methods

Hide inherited methods

MethodDescriptionDefined By
__construct() Constructor. CActiveRecordMetaData
getValidators() Returns list of validators CActiveRecordMetaData

Property Details

attributeDefaults property
public array $attributeDefaults;

attribute default values

columns property
public array $columns;

table columns

relations property
public array $relations;

list of relations

tableSchema property
public CDbTableSchema $tableSchema;

the table schema information

Method Details

__construct() method
public void __construct(CActiveRecord $model)
$model CActiveRecord the model instance
Source Code: framework/db/ar/CActiveRecord.php#2252 (show)
public function __construct($model)
{
    
$this->_model=$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}'=>get_class($model),'{table}'=>$tableName)));
    if(
$table->primaryKey===null)
        
$table->primaryKey=$model->primaryKey();
    
$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)
    {
        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}'=>get_class($model),'{relation}'=>$name)));
    }
}

Constructor.

getValidators() method
public array getValidators()
{return} array list of validators
Source Code: framework/db/ar/CActiveRecord.php#2284 (show)
public function getValidators()
{
    if(!
$this->_validators)
        
$this->_validators=$this->_model->createValidators();
    return 
$this->_validators;
}