Spec-Zone.ru › Yii 1.1

CDbColumnSchema

Пакет system.db.schema
Наследование класс CDbColumnSchema » CComponent
Подклассы CCubridColumnSchema, CMssqlColumnSchema, CMysqlColumnSchema, COciColumnSchema, CPgsqlColumnSchema, CSqliteColumnSchema
С версии 1.0
Исходный код framework/db/schema/CDbColumnSchema.php
Класс CDbColumnSchema описывает метаданные столбца базы данных.

Свойства 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 значение по умолчанию, полученное из метаданных
Исходный код: framework/db/schema/CDbColumnSchema.php#128 (показать)
protected function extractDefault($defaultValue)
{
    
$this->defaultValue=$this->typecast($defaultValue);
}

Извлекает значение по умолчанию для столбца. Значение приводится к соответствующему типу PHP.

extractLimit() метод

protected void extractLimit(string $dbType)
$dbType string тип столбца в базе данных
Исходный код: framework/db/schema/CDbColumnSchema.php#112 (показать)
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 тип базы данных
Исходный код: framework/db/schema/CDbColumnSchema.php#96 (показать)
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 значение по умолчанию
Исходный код: framework/db/schema/CDbColumnSchema.php#83 (показать)
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 преобразованное значение
Исходный код: framework/db/schema/CDbColumnSchema.php#138 (показать)
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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API