0 关注者

类 yii\db\cubrid\ColumnSchemaBuilder

继承关系yii\db\cubrid\ColumnSchemaBuilder » yii\db\ColumnSchemaBuilder » yii\base\BaseObject
实现接口yii\base\Configurable
可用版本2.0.8
源代码 https://github.com/yiisoft/yii2/blob/master/framework/db/cubrid/ColumnSchemaBuilder.php

ColumnSchemaBuilder 是 Cubrid 数据库的模式构建器。

公有属性

隐藏继承属性

属性 类型 描述 定义于
$after string 将在其后添加此列的列。 yii\db\ColumnSchemaBuilder
$append mixed 要追加到列模式定义的 SQL 字符串。 yii\db\ColumnSchemaBuilder
$categoryMap array 抽象列类型(键)到类型类别(值)的映射。 yii\db\ColumnSchemaBuilder
$check string 列的 CHECK 约束。 yii\db\ColumnSchemaBuilder
$comment string 列的注释值。 yii\db\ColumnSchemaBuilder
$db yii\db\Connection 当前数据库连接。 yii\db\ColumnSchemaBuilder
$default mixed 列的默认值。 yii\db\ColumnSchemaBuilder
$isFirst boolean 此列是否要插入到表的开头。 yii\db\ColumnSchemaBuilder
$isNotNull boolean|null 列是否可为空。 yii\db\ColumnSchemaBuilder
$isUnique boolean 列值是否应唯一。 yii\db\ColumnSchemaBuilder
$isUnsigned boolean 列值是否应无符号。 yii\db\ColumnSchemaBuilder
$length integer|string|array 列大小或精度定义。 yii\db\ColumnSchemaBuilder
$type string 列类型定义,例如 INTEGER、VARCHAR、DATETIME 等。 yii\db\ColumnSchemaBuilder
$typeCategoryMap array 抽象列类型(键)到类型类别(值)的映射。 yii\db\ColumnSchemaBuilder

受保护属性

隐藏继承属性

属性 类型 描述 定义于

公有方法

隐藏继承方法

方法 描述 定义于
__call() 调用不是类方法的命名方法。 yii\base\BaseObject
__construct() 创建一个列模式构建器实例,给出类型和值精度。 yii\db\ColumnSchemaBuilder
__get() 返回对象属性的值。 yii\base\BaseObject
__isset() 检查属性是否已设置,即定义且不为 null。 yii\base\BaseObject
__set() 设置对象属性的值。 yii\base\BaseObject
__toString() 构建列模式的完整字符串。 yii\db\cubrid\ColumnSchemaBuilder
__unset() 将对象属性设置为 null。 yii\base\BaseObject
after() 向列添加 AFTER 约束。 yii\db\ColumnSchemaBuilder
append() 指定要追加到列定义的其他 SQL。 yii\db\ColumnSchemaBuilder
canGetProperty() 返回一个值,指示是否可以读取属性。 yii\base\BaseObject
canSetProperty() 返回一个值,指示是否可以设置属性。 yii\base\BaseObject
check() 为列设置 CHECK 约束。 yii\db\ColumnSchemaBuilder
className() 返回此类的完全限定名称。 yii\base\BaseObject
comment() 指定列的注释。 yii\db\ColumnSchemaBuilder
defaultExpression() 指定列的默认 SQL 表达式。 yii\db\ColumnSchemaBuilder
defaultValue() 指定列的默认值。 yii\db\ColumnSchemaBuilder
first() 向列添加 FIRST 约束。 yii\db\ColumnSchemaBuilder
getCategoryMap() yii\db\ColumnSchemaBuilder
hasMethod() 返回一个值,指示方法是否已定义。 yii\base\BaseObject
hasProperty() 返回一个值,指示属性是否已定义。 yii\base\BaseObject
init() 初始化对象。 yii\base\BaseObject
notNull() 向列添加 NOT NULL 约束。 yii\db\ColumnSchemaBuilder
null() 向列添加 NULL 约束。 yii\db\ColumnSchemaBuilder
setCategoryMap() yii\db\ColumnSchemaBuilder
unique() 向列添加 UNIQUE 约束。 yii\db\ColumnSchemaBuilder
unsigned() 将列标记为无符号。 yii\db\ColumnSchemaBuilder

受保护方法

隐藏继承方法

方法 描述 定义于
buildAfterString() 构建列的 after 约束。默认为不支持。 yii\db\cubrid\ColumnSchemaBuilder
buildAppendString() 构建追加到列定义的自定义字符串。 yii\db\ColumnSchemaBuilder
buildCheckString() 构建列的 check 约束。 yii\db\ColumnSchemaBuilder
buildCommentString() 构建列的注释规范。 yii\db\cubrid\ColumnSchemaBuilder
buildCompleteString() 从输入格式返回完整的列定义。 yii\db\ColumnSchemaBuilder
buildDefaultString() 构建列的默认值规范。 yii\db\ColumnSchemaBuilder
buildDefaultValue() 返回列的默认值。 yii\db\ColumnSchemaBuilder
buildFirstString() 构建列的 first 约束。默认为不支持。 yii\db\cubrid\ColumnSchemaBuilder
buildLengthString() 构建列的长度/精度部分。 yii\db\ColumnSchemaBuilder
buildNotNullString() 构建列的 not null 约束。 yii\db\ColumnSchemaBuilder
buildUniqueString() 构建列的 unique 约束。 yii\db\ColumnSchemaBuilder
buildUnsignedString() 构建列的无符号字符串。默认为不支持。 yii\db\cubrid\ColumnSchemaBuilder
getTypeCategory() 返回列类型的类别。 yii\db\ColumnSchemaBuilder

常量

隐藏继承常量

常量 描述 定义于
CATEGORY_NUMERIC 'numeric' yii\db\ColumnSchemaBuilder
CATEGORY_OTHER 'other' yii\db\ColumnSchemaBuilder
CATEGORY_PK 'pk' yii\db\ColumnSchemaBuilder
CATEGORY_STRING 'string' yii\db\ColumnSchemaBuilder
CATEGORY_TIME 'time' yii\db\ColumnSchemaBuilder

方法详情

隐藏继承方法

__call() 公有方法

定义于: yii\base\BaseObject::__call()

调用不是类方法的命名方法。

不要直接调用此方法,因为它是一个 PHP 魔术方法,当调用未知方法时会隐式调用。

public mixed __call ( $name, $params )
$name string

方法名

$params array

方法参数

返回值 mixed

方法返回值

抛出异常 yii\base\UnknownMethodException

调用未知方法时

                public function __call($name, $params)
{
    throw new UnknownMethodException('Calling unknown method: ' . get_class($this) . "::$name()");
}

            
__construct() 公有方法

定义于: yii\db\ColumnSchemaBuilder::__construct()

创建一个列模式构建器实例,给出类型和值精度。

public void __construct ( $type, $length null, $db null, $config = [] )
$type string

列的类型。请参阅 $type

$length integer|string|array|null

列的长度或精度。参见 $length

$db yii\db\Connection|null

当前的数据库连接。参见 $db

$config array

用于初始化对象属性的名称-值对

                public function __construct($type, $length = null, $db = null, $config = [])
{
    $this->type = $type;
    $this->length = $length;
    $this->db = $db;
    parent::__construct($config);
}

            
__get() 公共方法

定义于: yii\base\BaseObject::__get()

返回对象属性的值。

不要直接调用此方法,因为它是一个PHP魔术方法,在执行$value = $object->property;时会被隐式调用。

另请参见 __set()

public mixed __get ( $name )
$name string

属性名称

返回值 mixed

属性值

抛出异常 yii\base\UnknownPropertyException

如果属性未定义

抛出异常 yii\base\InvalidCallException

如果属性是只写属性

                public function __get($name)
{
    $getter = 'get' . $name;
    if (method_exists($this, $getter)) {
        return $this->$getter();
    } elseif (method_exists($this, 'set' . $name)) {
        throw new InvalidCallException('Getting write-only property: ' . get_class($this) . '::' . $name);
    }
    throw new UnknownPropertyException('Getting unknown property: ' . get_class($this) . '::' . $name);
}

            
__isset() 公共方法

定义于: yii\base\BaseObject::__isset()

检查属性是否已设置,即定义且不为 null。

不要直接调用此方法,因为它是一个PHP魔术方法,在执行isset($object->property)时会被隐式调用。

请注意,如果属性未定义,则将返回false。

另请参见 https://php.ac.cn/manual/en/function.isset.php

public boolean __isset ( $name )
$name string

属性名称或事件名称

返回值 boolean

命名的属性是否已设置(非空)。

                public function __isset($name)
{
    $getter = 'get' . $name;
    if (method_exists($this, $getter)) {
        return $this->$getter() !== null;
    }
    return false;
}

            
__set() 公共方法

定义于: yii\base\BaseObject::__set()

设置对象属性的值。

不要直接调用此方法,因为它是一个PHP魔术方法,在执行$object->property = $value;时会被隐式调用。

另请参见 __get()

public void __set ( $name, $value )
$name string

属性名称或事件名称

$value mixed

属性值

抛出异常 yii\base\UnknownPropertyException

如果属性未定义

抛出异常 yii\base\InvalidCallException

如果属性是只读属性

                public function __set($name, $value)
{
    $setter = 'set' . $name;
    if (method_exists($this, $setter)) {
        $this->$setter($value);
    } elseif (method_exists($this, 'get' . $name)) {
        throw new InvalidCallException('Setting read-only property: ' . get_class($this) . '::' . $name);
    } else {
        throw new UnknownPropertyException('Setting unknown property: ' . get_class($this) . '::' . $name);
    }
}

            
__toString() 公共方法

构建列模式的完整字符串。

public string __toString ( )

                public function __toString()
{
    switch ($this->getTypeCategory()) {
        case self::CATEGORY_PK:
            $format = '{type}{check}{comment}{append}{pos}';
            break;
        case self::CATEGORY_NUMERIC:
            $format = '{type}{length}{unsigned}{notnull}{unique}{default}{check}{comment}{append}{pos}';
            break;
        default:
            $format = '{type}{length}{notnull}{unique}{default}{check}{comment}{append}{pos}';
    }
    return $this->buildCompleteString($format);
}

            
__unset() 公共方法

定义于: yii\base\BaseObject::__unset()

将对象属性设置为 null。

不要直接调用此方法,因为它是一个PHP魔术方法,在执行unset($object->property)时会被隐式调用。

请注意,如果属性未定义,则此方法将不做任何事情。如果属性是只读属性,则会抛出异常。

另请参见 https://php.ac.cn/manual/en/function.unset.php

public void __unset ( $name )
$name string

属性名称

抛出异常 yii\base\InvalidCallException

如果属性是只读属性。

                public function __unset($name)
{
    $setter = 'set' . $name;
    if (method_exists($this, $setter)) {
        $this->$setter(null);
    } elseif (method_exists($this, 'get' . $name)) {
        throw new InvalidCallException('Unsetting read-only property: ' . get_class($this) . '::' . $name);
    }
}

            
after() 公共方法 (自版本 2.0.8 起可用)

定义于: yii\db\ColumnSchemaBuilder::after()

向列添加 AFTER 约束。

注意:仅 MySQL、Oracle 和 Cubrid 支持。

public $this after ( $after )
$after string

将在其后添加 $this 列的列。

                public function after($after)
{
    $this->after = $after;
    return $this;
}

            
append() 公共方法 (自版本 2.0.9 起可用)

定义于: yii\db\ColumnSchemaBuilder::append()

指定要追加到列定义的其他 SQL。

位置修饰符将附加在支持它们的数据库中的列定义之后。

public $this append ( $sql )
$sql string

要附加的 SQL 字符串。

                public function append($sql)
{
    $this->append = $sql;
    return $this;
}

            
buildAfterString() 受保护方法 (自版本 2.0.8 起可用)

构建列的 after 约束。默认为不支持。

protected string buildAfterString ( )
返回值 string

包含 AFTER 约束的字符串。

                protected function buildAfterString()
{
    return $this->after !== null ?
        ' AFTER ' . $this->db->quoteColumnName($this->after) :
        '';
}

            
buildAppendString() 受保护方法 (自版本 2.0.9 起可用)

定义于: yii\db\ColumnSchemaBuilder::buildAppendString()

构建追加到列定义的自定义字符串。

protected string buildAppendString ( )
返回值 string

要附加的自定义字符串。

                protected function buildAppendString()
{
    return $this->append !== null ? ' ' . $this->append : '';
}

            
buildCheckString() 受保护方法

定义于: yii\db\ColumnSchemaBuilder::buildCheckString()

构建列的 check 约束。

protected string buildCheckString ( )
返回值 string

包含 CHECK 约束的字符串。

                protected function buildCheckString()
{
    return $this->check !== null ? " CHECK ({$this->check})" : '';
}

            
buildCommentString() 受保护方法 (自版本 2.0.8 起可用)

构建列的注释规范。

protected string buildCommentString ( )
返回值 string

包含 COMMENT 关键字和注释本身的字符串

                protected function buildCommentString()
{
    return $this->comment !== null ? ' COMMENT ' . $this->db->quoteValue($this->comment) : '';
}

            
buildCompleteString() 受保护方法 (自版本 2.0.8 起可用)

定义于: yii\db\ColumnSchemaBuilder::buildCompleteString()

从输入格式返回完整的列定义。

受保护 字符串 buildCompleteString ( $format )
$format string

定义的格式。

返回值 string

包含完整列定义的字符串。

                protected function buildCompleteString($format)
{
    $placeholderValues = [
        '{type}' => $this->type,
        '{length}' => $this->buildLengthString(),
        '{unsigned}' => $this->buildUnsignedString(),
        '{notnull}' => $this->buildNotNullString(),
        '{unique}' => $this->buildUniqueString(),
        '{default}' => $this->buildDefaultString(),
        '{check}' => $this->buildCheckString(),
        '{comment}' => $this->buildCommentString(),
        '{pos}' => $this->isFirst ? $this->buildFirstString() : $this->buildAfterString(),
        '{append}' => $this->buildAppendString(),
    ];
    return strtr($format, $placeholderValues);
}

            
buildDefaultString() 受保护方法

定义于: yii\db\ColumnSchemaBuilder::buildDefaultString()

构建列的默认值规范。

受保护 字符串 buildDefaultString ( )
返回值 string

包含列默认值的字符串。

                protected function buildDefaultString()
{
    $defaultValue = $this->buildDefaultValue();
    if ($defaultValue === null) {
        return '';
    }
    return ' DEFAULT ' . $defaultValue;
}

            
buildDefaultValue() 受保护方法

定义于: yii\db\ColumnSchemaBuilder::buildDefaultValue()

返回列的默认值。

受保护 字符串| buildDefaultValue ( )
返回值 字符串|

包含列默认值的字符串。

                protected function buildDefaultValue()
{
    if ($this->default === null) {
        return $this->isNotNull === false ? 'NULL' : null;
    }
    switch (gettype($this->default)) {
        case 'double':
            // ensure type cast always has . as decimal separator in all locales
            $defaultValue = StringHelper::floatToString($this->default);
            break;
        case 'boolean':
            $defaultValue = $this->default ? 'TRUE' : 'FALSE';
            break;
        case 'integer':
        case 'object':
            $defaultValue = (string) $this->default;
            break;
        default:
            $defaultValue = "'{$this->default}'";
    }
    return $defaultValue;
}

            
buildFirstString() 受保护方法 (自版本 2.0.8 起可用)

构建列的 first 约束。默认为不支持。

受保护 字符串 buildFirstString ( )
返回值 string

包含 FIRST 约束的字符串。

                protected function buildFirstString()
{
    return $this->isFirst ? ' FIRST' : '';
}

            
buildLengthString() 受保护方法

定义于: yii\db\ColumnSchemaBuilder::buildLengthString()

构建列的长度/精度部分。

受保护 字符串 buildLengthString ( )

                protected function buildLengthString()
{
    if ($this->length === null || $this->length === []) {
        return '';
    }
    if (is_array($this->length)) {
        $this->length = implode(',', $this->length);
    }
    return "({$this->length})";
}

            
buildNotNullString() 受保护方法

定义于: yii\db\ColumnSchemaBuilder::buildNotNullString()

构建列的 not null 约束。

受保护 字符串 buildNotNullString ( )
返回值 string

如果 $isNotNull 为真,则返回 'NOT NULL';如果 $isNotNull 为假,则返回 'NULL';否则返回空字符串。

                protected function buildNotNullString()
{
    if ($this->isNotNull === true) {
        return ' NOT NULL';
    } elseif ($this->isNotNull === false) {
        return ' NULL';
    }
    return '';
}

            
buildUniqueString() 受保护方法

定义于: yii\db\ColumnSchemaBuilder::buildUniqueString()

构建列的 unique 约束。

受保护 字符串 buildUniqueString ( )
返回值 string

如果 $isUnique 为真,则返回字符串 'UNIQUE',否则返回空字符串。

                protected function buildUniqueString()
{
    return $this->isUnique ? ' UNIQUE' : '';
}

            
buildUnsignedString() 受保护方法 (自版本 2.0.7 起可用)

构建列的无符号字符串。默认为不支持。

受保护 字符串 buildUnsignedString ( )
返回值 string

包含 UNSIGNED 关键字的字符串。

                protected function buildUnsignedString()
{
    return $this->isUnsigned ? ' UNSIGNED' : '';
}

            
canGetProperty() 公共方法

定义于: yii\base\BaseObject::canGetProperty()

返回一个值,指示是否可以读取属性。

如果属性是可读的,则

  • 类具有与指定名称关联的 getter 方法(在这种情况下,属性名称不区分大小写);
  • 类具有与指定名称相同的成员变量(当 $checkVars 为真时);

另请参阅 canSetProperty()

公共 布尔值 canGetProperty ( $name, $checkVars true )
$name string

属性名称

$checkVars boolean

是否将成员变量视为属性

返回值 boolean

属性是否可读

                public function canGetProperty($name, $checkVars = true)
{
    return method_exists($this, 'get' . $name) || $checkVars && property_exists($this, $name);
}

            
canSetProperty() 公共方法

定义于: yii\base\BaseObject::canSetProperty()

返回一个值,指示是否可以设置属性。

如果属性是可写的,则

  • 类具有与指定名称关联的 setter 方法(在这种情况下,属性名称不区分大小写);
  • 类具有与指定名称相同的成员变量(当 $checkVars 为真时);

另请参阅 canGetProperty()

公共 布尔值 canSetProperty ( $name, $checkVars true )
$name string

属性名称

$checkVars boolean

是否将成员变量视为属性

返回值 boolean

属性是否可写

                public function canSetProperty($name, $checkVars = true)
{
    return method_exists($this, 'set' . $name) || $checkVars && property_exists($this, $name);
}

            
check() 公共方法

定义于: yii\db\ColumnSchemaBuilder::check()

为列设置 CHECK 约束。

公共 $this check ( $check )
$check string

要添加的 CHECK 约束的 SQL。

                public function check($check)
{
    $this->check = $check;
    return $this;
}

            
className() 公共静态方法
自 2.0.14 起已弃用。在 PHP >=5.5 中,请改用 ::class

定义于: yii\base\BaseObject::className()

返回此类的完全限定名称。

公共静态 字符串 className ( )
返回值 string

此类的完全限定名称。

                public static function className()
{
    return get_called_class();
}

            
comment() 公共方法 (自版本 2.0.8 起可用)

定义于: yii\db\ColumnSchemaBuilder::comment()

指定列的注释。

公共 $this comment ( $comment )
$comment string

注释

                public function comment($comment)
{
    $this->comment = $comment;
    return $this;
}

            
defaultExpression() 公共方法 (自版本 2.0.7 起可用)

定义于: yii\db\ColumnSchemaBuilder::defaultExpression()

指定列的默认 SQL 表达式。

public $this defaultExpression ( $default )
$default string

默认值表达式。

                public function defaultExpression($default)
{
    $this->default = new Expression($default);
    return $this;
}

            
defaultValue() 公共方法

定义于: yii\db\ColumnSchemaBuilder::defaultValue()

指定列的默认值。

public $this defaultValue ( $default )
$default mixed

默认值。

                public function defaultValue($default)
{
    if ($default === null) {
        $this->null();
    }
    $this->default = $default;
    return $this;
}

            
first() 公共方法 (自 2.0.8 版本起可用)

定义于: yii\db\ColumnSchemaBuilder::first()

向列添加 FIRST 约束。

注意:仅 MySQL、Oracle 和 Cubrid 支持。

public $this first ( )

                public function first()
{
    $this->isFirst = true;
    return $this;
}

            
getCategoryMap() 公共方法 (自 2.0.43 版本起可用)
public array getCategoryMap ( )
返回值 array

抽象列类型(键)到类型类别(值)的映射。

                public function getCategoryMap()
{
    return static::$typeCategoryMap;
}

            
getTypeCategory() 受保护方法 (自 2.0.8 版本起可用)

定义于: yii\db\ColumnSchemaBuilder::getTypeCategory()

返回列类型的类别。

protected string getTypeCategory ( )
返回值 string

包含列类型类别名称的字符串。

                protected function getTypeCategory()
{
    return isset($this->categoryMap[$this->type]) ? $this->categoryMap[$this->type] : null;
}

            
hasMethod() 公共方法

定义于: yii\base\BaseObject::hasMethod()

返回一个值,指示方法是否已定义。

默认实现是对 PHP 函数 method_exists() 的调用。当您实现 PHP 魔术方法 __call() 时,您可以覆盖此方法。

public boolean hasMethod ( $name )
$name string

方法名

返回值 boolean

方法是否已定义

                public function hasMethod($name)
{
    return method_exists($this, $name);
}

            
hasProperty() 公共方法

定义于: yii\base\BaseObject::hasProperty()

返回一个值,指示属性是否已定义。

如果属性已定义,则

  • 类具有与指定名称关联的 getter 或 setter 方法(在这种情况下,属性名称不区分大小写);
  • 类具有与指定名称相同的成员变量(当 $checkVars 为真时);

另请参阅

public boolean hasProperty ( $name, $checkVars true )
$name string

属性名称

$checkVars boolean

是否将成员变量视为属性

返回值 boolean

属性是否已定义

                public function hasProperty($name, $checkVars = true)
{
    return $this->canGetProperty($name, $checkVars) || $this->canSetProperty($name, false);
}

            
init() 公共方法

定义于: yii\base\BaseObject::init()

初始化对象。

此方法在构造函数结束时调用,在对象使用给定配置初始化之后。

public void init ( )

                public function init()
{
}

            
notNull() 公共方法

定义于: yii\db\ColumnSchemaBuilder::notNull()

向列添加 NOT NULL 约束。

public $this notNull ( )

                public function notNull()
{
    $this->isNotNull = true;
    return $this;
}

            
null() 公共方法 (自 2.0.9 版本起可用)

定义于: yii\db\ColumnSchemaBuilder::null()

向列添加 NULL 约束。

public $this null ( )

                public function null()
{
    $this->isNotNull = false;
    return $this;
}

            
setCategoryMap() 公共方法 (自 2.0.43 版本起可用)
public void setCategoryMap ( $categoryMap )
$categoryMap array

抽象列类型(键)到类型类别(值)的映射。

                public function setCategoryMap($categoryMap)
{
    static::$typeCategoryMap = $categoryMap;
}

            
unique() 公共方法

定义于: yii\db\ColumnSchemaBuilder::unique()

向列添加 UNIQUE 约束。

public $this unique ( )

                public function unique()
{
    $this->isUnique = true;
    return $this;
}

            
unsigned() 公共方法 (自 2.0.7 版本起可用)

定义于: yii\db\ColumnSchemaBuilder::unsigned()

将列标记为无符号。

public $this unsigned ( )

                public function unsigned()
{
    switch ($this->type) {
        case Schema::TYPE_PK:
            $this->type = Schema::TYPE_UPK;
            break;
        case Schema::TYPE_BIGPK:
            $this->type = Schema::TYPE_UBIGPK;
            break;
    }
    $this->isUnsigned = true;
    return $this;
}