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 |
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 |
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 |
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 |
whether this column can be null.
whether this column is auto-incremental
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.
the DB type of this column.
default value of this column
whether this column is a foreign key
whether this column is a primary key
name of this column (without quotes).
precision of the column data, if it is numeric.
raw name of this column. This is the quoted name that can be used in SQL queries.
scale of the column data, if it is numeric.
size of the column.
the PHP type of this column.
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.
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.
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.
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.
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.
Signup or Login in order to comment.