CDbColumnSchema
| Пакет | system.db.schema |
|---|---|
| Наследование | класс CDbColumnSchema » CComponent |
| Подклассы | CCubridColumnSchema, CMssqlColumnSchema, CMysqlColumnSchema, COciColumnSchema, CPgsqlColumnSchema, CSqliteColumnSchema |
| С версии | 1.0 |
| Исходный код | framework/db/schema/CDbColumnSchema.php |
Свойства public
| Свойство | Тип | Описание | Определено в |
|---|---|---|---|
| allowNull | boolean | может ли столбец быть NULL. | CDbColumnSchema |
| autoIncrement | boolean | является ли столбец автоинкрементируемым | CDbColumnSchema |
| comment | string | комментарий к столбцу. Значение по умолчанию — пустая строка, что означает отсутствие комментария. Значение NULL означает, что СУБД не поддерживает комментарии к столбцам (SQLite) или получение комментариев для активной СУБД пока не поддерживается фреймворком. | CDbColumnSchema |
| dbType | string | тип столбца в СУБД. | CDbColumnSchema |
| defaultValue | mixed | значение по умолчанию для столбца | CDbColumnSchema |
| isForeignKey | boolean | является ли столбец внешним ключом | CDbColumnSchema |
| isPrimaryKey | boolean | является ли столбец первичным ключом | CDbColumnSchema |
| name | string | название столбца (без кавычек). | CDbColumnSchema |
| precision | integer | точность данных столбца, если он числовой. | CDbColumnSchema |
| rawName | string | исходное имя столбца. | CDbColumnSchema |
| scale | integer | разрядность данных столбца, если он числовой. | CDbColumnSchema |
| size | integer | размер столбца. | CDbColumnSchema |
| type | string | тип столбца в PHP. | CDbColumnSchema |
Методы public
| Метод | Описание | Определено в |
|---|---|---|
| __call() | Вызывает метод, которого нет в классе. | CComponent |
| __get() | Возвращает значение свойства, список обработчиков событий или поведение по его имени. | CComponent |
| __isset() | Проверяет, является ли значение свойства нулевым. | 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 |
| getEventHandlers() | Возвращает список присоединенных обработчиков событий для события. | CComponent |
| hasEvent() | Определяет, определено ли событие. | CComponent |
| hasEventHandler() | Проверяет, есть ли обработчики присоединенные к событию с указанным именем. | CComponent |
| hasProperty() | Определяет, определено ли свойство. | CComponent |
| init() | Инициализирует столбец с помощью типа и значения по умолчанию БД. | CDbColumnSchema |
| raiseEvent() | Вызывает событие. | CComponent |
| typecast() | Преобразует входное значение к типу столбца. | CDbColumnSchema |
Методы protected
| Метод | Описание | Определено в |
|---|---|---|
| extractDefault() | Извлекает значение по умолчанию для столбца. | CDbColumnSchema |
| extractLimit() | Извлекает размер, точность и разрядность из типа столбца БД. | CDbColumnSchema |
| extractType() | Извлекает тип PHP из типа БД. | CDbColumnSchema |
Подробное описание свойств
allowNull свойство
public boolean $allowNull;
может ли столбец быть NULL.
autoIncrement свойство (доступно с версии v1.1.7)
public boolean $autoIncrement;
является ли столбец автоинкрементируемым
comment свойство (доступно с версии v1.1.13)
public string $comment;
комментарий к столбцу. Значение по умолчанию — пустая строка, что означает отсутствие комментария. Значение NULL означает, что СУБД не поддерживает комментарии к столбцам (SQLite) или получение комментариев для активной СУБД пока не поддерживается фреймворком.
dbType свойство
public string $dbType;
тип столбца в СУБД.
defaultValue свойство
public mixed $defaultValue;
значение по умолчанию для столбца
isForeignKey свойство
public boolean $isForeignKey;
является ли столбец внешним ключом
isPrimaryKey свойство
public boolean $isPrimaryKey;
является ли столбец первичным ключом
name свойство
public string $name;
название столбца (без кавычек).
precision свойство
public integer $precision;
точность данных столбца, если это числовое значение.
rawName свойство
public string $rawName;
истинное имя этого столбца. Это имя в кавычках, которое можно использовать в запросах SQL.
scale свойство
public integer $scale;
разрядность данных столбца, если это числовое значение.
size свойство
public integer $size;
размер столбца.
type свойство
public string $type;
тип этого столбца в PHP.
Подробное описание методов
extractDefault() метод
protected void extractDefault(mixed $defaultValue) | ||
| $defaultValue | mixed | значение по умолчанию, полученное из метаданных |
protected function extractDefault($defaultValue)
{
$this->defaultValue=$this->typecast($defaultValue);
}
Извлекает значение по умолчанию для столбца. Значение приводится к соответствующему типу PHP.
extractLimit() метод
protected void extractLimit(string $dbType) | ||
| $dbType | string | тип столбца в базе данных |
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];
}
}
Извлекает информацию о размере, точности и разрядности из типа столбца в базе данных.
extractType() метод
protected void extractType(string $dbType) | ||
| $dbType | string | тип базы данных |
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';
}
Извлекает тип PHP из типа базы данных.
init() метод
public void init(string $dbType, mixed $defaultValue) | ||
| $dbType | string | тип столбца в базе данных |
| $defaultValue | mixed | значение по умолчанию |
public function init($dbType, $defaultValue)
{
$this->dbType=$dbType;
$this->extractType($dbType);
$this->extractLimit($dbType);
if($defaultValue!==null)
$this->extractDefault($defaultValue);
}
Инициализирует столбец с типом и значением по умолчанию из базы данных. Это устанавливает тип PHP, размер, точность, разрядность, а также значение по умолчанию столбца.
typecast() метод
public mixed typecast(mixed $value) | ||
| $value | mixed | входное значение |
| {return} | mixed | преобразованное значение |
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;
}
}
Преобразует входное значение к типу этого столбца.
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc/api/1.1/CDbColumnSchema