CDbTableSchema


system.db.schema
继承 class CDbTableSchema » CComponent
子类 CMssqlTableSchema, CMysqlTableSchema, COciTableSchema, CPgsqlTableSchema
源自 1.0
版本 $Id: CDbTableSchema.php 3426 2011-10-25 00:01:09Z alexander.makarow $
源码
CDbTableSchema是代表数据表元数据的基类。

它可以被不同的DBMS驱动继承以提供指定DBMS的表元数据。

CDbTableSchema提供关于一个表的如下信息:

公共属性

属性 类型 描述 定义在
columnNames array 列名列表。 CDbTableSchema
columns array 该表的列元数据。每个数组元素都是一个CDbColumnSchema对象,以列名为索引。 CDbTableSchema
foreignKeys array 该表的外键。该数组以列名作为索引。每个值是一个外键表名和外键列名组成的数组。 CDbTableSchema
name string 表名。 CDbTableSchema
primaryKey string|array 该表的主键名。若为符合键,则返回键名数组。 CDbTableSchema
rawName string 该表的原始名称。这是表名的引用后的版本,带有可选schema名。它可以直接在SQL中使用。 CDbTableSchema
sequenceName string 主键的序列名。若无序列则为null。 CDbTableSchema

公共方法

方法 描述 定义在
__call() 如果类中没有调的方法名,则调用这个方法。 CComponent
__get() 返回一个属性值、一个事件处理程序列表或一个行为名称。 CComponent
__isset() 检查一个属性是否为null。 CComponent
__set() 设置一个组件的属性值。 CComponent
__unset() 设置一个组件的属性为null。 CComponent
asa() 返回这个名字的行为对象。 CComponent
attachBehavior() 附加一个行为到组件。 CComponent
attachBehaviors() 附加一个行为列表到组件。 CComponent
attachEventHandler() 为事件附加一个事件处理程序。 CComponent
canGetProperty() 确定属性是否可读。 CComponent
canSetProperty() 确定属性是否可写。 CComponent
detachBehavior() 从组件中分离一个行为。 CComponent
detachBehaviors() 从组件中分离所有行为。 CComponent
detachEventHandler() 分离一个存在的事件处理程序。 CComponent
disableBehavior() 禁用一个附加行为。 CComponent
disableBehaviors() 禁用组件附加的所有行为。 CComponent
enableBehavior() 启用一个附加行为。 CComponent
enableBehaviors() 启用组件附加的所有行为。 CComponent
evaluateExpression() 计算一个PHP表达式,或根据组件上下文执行回调。 CComponent
getColumn() 获得已命名的列元数据。 CDbTableSchema
getColumnNames() 返回列名列表。 CDbTableSchema
getEventHandlers() 返回一个事件的附加处理程序列表。 CComponent
hasEvent() 确定一个事件是否定义。 CComponent
hasEventHandler() 检查事件是否有附加的处理程序。 CComponent
hasProperty() 确定属性是否被定义。 CComponent
raiseEvent() 发起一个事件。 CComponent

属性详细

columnNames 属性 只读
public array getColumnNames()

列名列表。

columns 属性
public array $columns;

该表的列元数据。每个数组元素都是一个CDbColumnSchema对象,以列名为索引。

foreignKeys 属性
public array $foreignKeys;

该表的外键。该数组以列名作为索引。每个值是一个外键表名和外键列名组成的数组。

name 属性
public string $name;

表名。

primaryKey 属性
public string|array $primaryKey;

该表的主键名。若为符合键,则返回键名数组。

rawName 属性
public string $rawName;

该表的原始名称。这是表名的引用后的版本,带有可选schema名。它可以直接在SQL中使用。

sequenceName 属性
public string $sequenceName;

主键的序列名。若无序列则为null。

方法详细

getColumn() 方法
public CDbColumnSchema getColumn(string $name)
$name string 列名
{return} CDbColumnSchema 命名列的元数据。若命名列不存在则返回null。
public function getColumn($name)
{
    return isset(
$this->columns[$name]) ? $this->columns[$name] : null;
}

获得已命名的列元数据。 这是一个方便方法用于检索命名的列,即使它不存在。

getColumnNames() 方法
public array getColumnNames()
{return} array 列名列表。
public function getColumnNames()
{
    return 
array_keys($this->columns);
}