0 关注者

类 yii\db\sqlite\ColumnSchemaBuilder

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

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

公共属性

隐藏继承的属性

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

受保护的属性

隐藏继承的属性

属性 类型 描述 定义于

公共方法

隐藏继承的方法

方法 描述 定义于
__call() 调用不是类方法的命名方法。 yii\base\BaseObject
__construct() 创建列模式构建器实例,给出类型和值精度。 yii\db\ColumnSchemaBuilder
__get() 返回对象属性的值。 yii\base\BaseObject
__isset() 检查属性是否已设置,即定义且不为空。 yii\base\BaseObject
__set() 设置对象属性的值。 yii\base\BaseObject
__toString() 构建列模式的完整字符串。 yii\db\sqlite\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\ColumnSchemaBuilder
buildAppendString() 构建附加到列定义的自定义字符串。 yii\db\ColumnSchemaBuilder
buildCheckString() 构建列的 check 约束。 yii\db\ColumnSchemaBuilder
buildCommentString() 构建列的注释规范。 yii\db\ColumnSchemaBuilder
buildCompleteString() 从输入格式返回完整的列定义。 yii\db\ColumnSchemaBuilder
buildDefaultString() 构建列的默认值规范。 yii\db\ColumnSchemaBuilder
buildDefaultValue() 返回列的默认值。 yii\db\ColumnSchemaBuilder
buildFirstString() 构建列的 first 约束。默认情况下不支持。 yii\db\ColumnSchemaBuilder
buildLengthString() 构建列的长度/精度部分。 yii\db\ColumnSchemaBuilder
buildNotNullString() 构建列的非空约束。 yii\db\ColumnSchemaBuilder
buildUniqueString() 构建列的唯一约束。 yii\db\ColumnSchemaBuilder
buildUnsignedString() 构建列的无符号字符串。默认情况下不支持。 yii\db\sqlite\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 混合 __call ( $name, $params )
$name 字符串

方法名称

$params 数组

方法参数

返回值 混合

方法返回值

抛出 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 字符串

列的类型。参见 $type

$length 整数|字符串|数组|空值

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

$db yii\db\Connection|空值

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

$config 数组

用于初始化对象属性的键值对

                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 字符串

属性名

返回值 混合

属性值

抛出 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()

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

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

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

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

public boolean __isset ( $name )
$name 字符串

属性名或事件名

返回值 布尔值

指定的属性是否已设置(非空)。

                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 字符串

属性名或事件名

$value 混合

属性值

抛出 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}{append}';
            break;
        case self::CATEGORY_NUMERIC:
            $format = '{type}{length}{unsigned}{notnull}{unique}{check}{default}{append}';
            break;
        default:
            $format = '{type}{length}{notnull}{unique}{check}{default}{append}';
    }
    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 字符串

属性名

抛出 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 字符串

将添加 $this 列的列。

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

            
append() 公共方法 (从版本 2.0.9 开始可用)

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

指定要附加到列定义的附加 SQL。

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

public $this append ( $sql )
$sql 字符串

要附加的 SQL 字符串。

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

            
buildAfterString() 受保护方法 (从版本 2.0.8 开始可用)

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

构建列的 after 约束。默认情况下不支持。

protected string buildAfterString ( )
返回值 字符串

包含 AFTER 约束的字符串。

                protected function buildAfterString()
{
    return '';
}

            
buildAppendString() 受保护方法 (从版本 2.0.9 开始可用)

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

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

protected string buildAppendString ( )
返回值 字符串

要附加的自定义字符串。

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

            
buildCheckString() 受保护方法

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

构建列的 check 约束。

protected string buildCheckString ( )
返回值 字符串

包含 CHECK 约束的字符串。

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

            
buildCommentString() 受保护方法 (从版本 2.0.8 开始可用)

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

构建列的注释规范。

protected string buildCommentString ( )
返回值 字符串

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

                protected function buildCommentString()
{
    return '';
}

            
buildCompleteString() 受保护方法 (从版本 2.0.8 开始可用)

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

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

protected string buildCompleteString ( $format )
$format 字符串

定义的格式。

返回值 字符串

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

                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() protected method

Defined in: yii\db\ColumnSchemaBuilder::buildDefaultString()

构建列的默认值规范。

protected string buildDefaultString ( )
返回值 字符串

列的默认值字符串。

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

            
buildDefaultValue() protected method

Defined in: yii\db\ColumnSchemaBuilder::buildDefaultValue()

返回列的默认值。

protected string|null buildDefaultValue ( )
返回值 string|null

列的默认值字符串。

                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() protected method (available since version 2.0.8)

Defined in: yii\db\ColumnSchemaBuilder::buildFirstString()

构建列的 first 约束。默认情况下不支持。

protected string buildFirstString ( )
返回值 字符串

包含 FIRST 约束的字符串。

                protected function buildFirstString()
{
    return '';
}

            
buildLengthString() protected method

Defined in: yii\db\ColumnSchemaBuilder::buildLengthString()

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

protected string 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() protected method

Defined in: yii\db\ColumnSchemaBuilder::buildNotNullString()

构建列的非空约束。

protected string buildNotNullString ( )
返回值 字符串

如果 $isNotNull 为 true,则返回 'NOT NULL',如果 $isNotNull 为 false,则返回 'NULL',否则返回空字符串。

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

            
buildUniqueString() protected method

Defined in: yii\db\ColumnSchemaBuilder::buildUniqueString()

构建列的唯一约束。

protected string buildUniqueString ( )
返回值 字符串

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

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

            
buildUnsignedString() protected method (available since version 2.0.7)

构建列的无符号字符串。默认情况下不支持。

protected string buildUnsignedString ( )
返回值 字符串

包含 UNSIGNED 关键字的字符串。

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

            
canGetProperty() public method

Defined in: yii\base\BaseObject::canGetProperty()

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

属性可读,如果

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

另见 canSetProperty().

public boolean canGetProperty ( $name, $checkVars true )
$name 字符串

属性名

$checkVars 布尔值

是否将成员变量视为属性

返回值 布尔值

属性是否可读

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

            
canSetProperty() public method

Defined in: yii\base\BaseObject::canSetProperty()

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

属性可写,如果

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

另见 canGetProperty().

public boolean canSetProperty ( $name, $checkVars true )
$name 字符串

属性名

$checkVars 布尔值

是否将成员变量视为属性

返回值 布尔值

属性是否可写

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

            
check() public method

Defined in: yii\db\ColumnSchemaBuilder::check()

为列设置 CHECK 约束。

public $this check ( $check )
$check 字符串

要添加的 CHECK 约束的 SQL。

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

            
className() public static method
自 2.0.14 版起已弃用。在 PHP >=5.5 上,请使用 ::class 代替。

Defined in: yii\base\BaseObject::className()

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

public static string className ( )
返回值 字符串

此类的完全限定名称。

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

            
comment() public method (available since version 2.0.8)

Defined in: yii\db\ColumnSchemaBuilder::comment()

指定列的注释。

public $this comment ( $comment )
$comment 字符串

注释

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

            
defaultExpression() public method (available since version 2.0.7)

Defined in: yii\db\ColumnSchemaBuilder::defaultExpression()

指定列的默认 SQL 表达式。

public $this defaultExpression ( $default )
$default 字符串

默认值表达式。

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

            
defaultValue() 公共方法

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

指定列的默认值。

public $this defaultValue ( $default )
$default 混合

默认值。

                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 ( )
返回值 数组

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

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

            
getTypeCategory() 受保护方法 (从版本 2.0.8 开始可用)

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

返回列类型的类别。

protected string getTypeCategory ( )
返回值 字符串

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

                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 字符串

方法名称

返回值 布尔值

方法是否已定义

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

            
hasProperty() 公共方法

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

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

如果定义了属性,则

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

另请参见

public boolean hasProperty ( $name, $checkVars true )
$name 字符串

属性名

$checkVars 布尔值

是否将成员变量视为属性

返回值 布尔值

属性是否已定义

                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 数组

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

                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;
}