CDbColumnSchema
Package | system.db.schema |
---|---|
Inheritance | class CDbColumnSchema » CComponent |
Subclasses | CCubridColumnSchema, CMssqlColumnSchema, CMysqlColumnSchema, COciColumnSchema, CPgsqlColumnSchema, CSqliteColumnSchema |
Since | 1.0 |
Source Code | framework/db/schema/CDbColumnSchema.php |
Public Properties
Property | Type | Description | Defined By |
---|---|---|---|
allowNull | boolean | whether this column can be null. | CDbColumnSchema |
autoIncrement | boolean | whether this column is auto-incremental | CDbColumnSchema |
comment | string | comment of this column. | CDbColumnSchema |
dbType | string | the DB type of this column. | CDbColumnSchema |
defaultValue | mixed | default value of this column | CDbColumnSchema |
isForeignKey | boolean | whether this column is a foreign key | CDbColumnSchema |
isPrimaryKey | boolean | whether this column is a primary key | CDbColumnSchema |
name | string | name of this column (without quotes). | CDbColumnSchema |
precision | integer | precision of the column data, if it is numeric. | CDbColumnSchema |
rawName | string | raw name of this column. | CDbColumnSchema |
scale | integer | scale of the column data, if it is numeric. | CDbColumnSchema |
size | integer | size of the column. | CDbColumnSchema |
type | string | the PHP type of this column. | CDbColumnSchema |
Public Methods
Method | Description | Defined By |
---|---|---|
__call() | Calls the named method which is not a class method. | CComponent |
__get() | Returns a property value, an event handler list or a behavior based on its name. | CComponent |
__isset() | Checks if a property value is null. | CComponent |
__set() | Sets value of a component property. | CComponent |
__unset() | Sets a component property to be null. | CComponent |
asa() | Returns the named behavior object. | CComponent |
attachBehavior() | Attaches a behavior to this component. | CComponent |
attachBehaviors() | Attaches a list of behaviors to the component. | CComponent |
attachEventHandler() | Attaches an event handler to an event. | CComponent |
canGetProperty() | Determines whether a property can be read. | CComponent |
canSetProperty() | Determines whether a property can be set. | CComponent |
detachBehavior() | Detaches a behavior from the component. | CComponent |
detachBehaviors() | Detaches all behaviors from the component. | CComponent |
detachEventHandler() | Detaches an existing event handler. | CComponent |
disableBehavior() | Disables an attached behavior. | CComponent |
disableBehaviors() | Disables all behaviors attached to this component. | CComponent |
enableBehavior() | Enables an attached behavior. | CComponent |
enableBehaviors() | Enables all behaviors attached to this component. | CComponent |
evaluateExpression() | Evaluates a PHP expression or callback under the context of this component. | CComponent |
getEventHandlers() | Returns the list of attached event handlers for an event. | CComponent |
hasEvent() | Determines whether an event is defined. | CComponent |
hasEventHandler() | Checks whether the named event has attached handlers. | CComponent |
hasProperty() | Determines whether a property is defined. | CComponent |
init() | Initializes the column with its DB type and default value. | CDbColumnSchema |
raiseEvent() | Raises an event. | CComponent |
typecast() | Converts the input value to the type that this column is of. | CDbColumnSchema |
Protected Methods
Method | Description | Defined By |
---|---|---|
extractDefault() | Extracts the default value for the column. | CDbColumnSchema |
extractLimit() | Extracts size, precision and scale information from column's DB type. | CDbColumnSchema |
extractType() | Extracts the PHP type from DB type. | CDbColumnSchema |
Property Details
allowNull property
public boolean $allowNull;
whether this column can be null.
autoIncrement property (available since v1.1.7)
public boolean $autoIncrement;
whether this column is auto-incremental
comment property (available since v1.1.13)
public string $comment;
comment of this column. Default value is empty string which means that no comment has been set for the column. Null value means that RDBMS does not support column comments at all (SQLite) or comment retrieval for the active RDBMS is not yet supported by the framework.
dbType property
public string $dbType;
the DB type of this column.
defaultValue property
public mixed $defaultValue;
default value of this column
isForeignKey property
public boolean $isForeignKey;
whether this column is a foreign key
isPrimaryKey property
public boolean $isPrimaryKey;
whether this column is a primary key
name property
public string $name;
name of this column (without quotes).
precision property
public integer $precision;
precision of the column data, if it is numeric.
rawName property
public string $rawName;
raw name of this column. This is the quoted name that can be used in SQL queries.
scale property
public integer $scale;
scale of the column data, if it is numeric.
size property
public integer $size;
size of the column.
type property
public string $type;
the PHP type of this column.
Method Details
extractDefault() method
protected void extractDefault(mixed $defaultValue) | ||
$defaultValue | mixed | the default value obtained from metadata |
protected function extractDefault($defaultValue)
{
$this->defaultValue=$this->typecast($defaultValue);
}
Extracts the default value for the column. The value is typecasted to correct PHP type.
extractLimit() method
protected void extractLimit(string $dbType) | ||
$dbType | string | the column's DB type |
protected function extractLimit($dbType)
{
if(strpos($dbType,'(') && preg_match('/\((.*)\)/',$dbType,$matches))
{
$values=explode(',',$matches[1]);
$this->size=$this->precision=(int)$values[0];
if(isset($values[1]))
$this->scale=(int)$values[1];
}
}
Extracts size, precision and scale information from column's DB type.
extractType() method
protected void extractType(string $dbType) | ||
$dbType | string | DB type |
protected function extractType($dbType)
{
if(stripos($dbType,'int')!==false && stripos($dbType,'unsigned int')===false)
$this->type='integer';
elseif(stripos($dbType,'bool')!==false)
$this->type='boolean';
elseif(preg_match('/(real|floa|doub)/i',$dbType))
$this->type='double';
else
$this->type='string';
}
Extracts the PHP type from DB type.
init() method
public void init(string $dbType, mixed $defaultValue) | ||
$dbType | string | the column's DB type |
$defaultValue | mixed | the default value |
public function init($dbType, $defaultValue)
{
$this->dbType=$dbType;
$this->extractType($dbType);
$this->extractLimit($dbType);
if($defaultValue!==null)
$this->extractDefault($defaultValue);
}
Initializes the column with its DB type and default value. This sets up the column's PHP type, size, precision, scale as well as default value.
typecast() method
public mixed typecast(mixed $value) | ||
$value | mixed | input value |
{return} | mixed | converted value |
public function typecast($value)
{
if(gettype($value)===$this->type || $value===null || $value instanceof CDbExpression)
return $value;
if($value==='' && $this->allowNull)
return $this->type==='string' ? '' : null;
switch($this->type)
{
case 'string': return (string)$value;
case 'integer': return (integer)$value;
case 'boolean': return (boolean)$value;
case 'double':
default: return $value;
}
}
Converts the input value to the type that this column is of.
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc/api/1.1/CDbColumnSchema