0 关注者

类 yii\db\oci\ColumnSchemaBuilder

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

ColumnSchemaBuilder 是 Oracle 数据库的架构构建器。

公共属性

隐藏继承的属性

属性 类型 描述 定义于
$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() 检查属性是否已设置,即已定义且不为空。 yii\base\BaseObject
__set() 设置对象属性的值。 yii\base\BaseObject
__toString() 构建列架构的完整字符串。 yii\db\oci\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() 构建列的 not null 约束。 yii\db\ColumnSchemaBuilder
buildUniqueString() 构建列的 unique 约束。 yii\db\ColumnSchemaBuilder
buildUnsignedString() 构建列的无符号字符串。默认情况下不支持。 yii\db\oci\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() public method

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

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

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

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

方法名称

$params array

方法参数

return mixed

方法返回值

throws yii\base\UnknownMethodException

调用未知方法时

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

            
__construct() public method

定义于: 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() public method

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

返回对象属性的值。

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

另请参见 __set()

public mixed __get ( $name )
$name string

属性名称

return mixed

属性值

throws yii\base\UnknownPropertyException

如果属性未定义

throws 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() public method

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

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

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

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

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

public boolean __isset ( $name )
$name string

属性名称或事件名称

return boolean

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

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

            
__set() public method

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

设置对象属性的值。

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

另请参见 __get()

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

属性名称或事件名称

$value mixed

属性值

throws yii\base\UnknownPropertyException

如果属性未定义

throws 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 method

构建列架构的完整字符串。

public string __toString ( )

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

            
__unset() public method

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

将对象属性设置为 null。

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

请注意,如果属性未定义,此方法将不执行任何操作。如果属性是只读,它将抛出异常。

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

public void __unset ( $name )
$name string

属性名称

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

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

向列添加 AFTER 约束。

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

public $this after ( $after )
$after string

在该列之后添加此列的列。

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

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

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

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

protected string buildAfterString ( )
return string

包含 AFTER 约束的字符串。

                protected function buildAfterString()
{
    return '';
}

            
buildAppendString() protected method (available since version 2.0.9)

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

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

protected string buildAppendString ( )
return string

要追加的自定义字符串。

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

            
buildCheckString() protected method

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

构建列的 check 约束。

protected string buildCheckString ( )
return string

包含 CHECK 约束的字符串。

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

            
buildCommentString() protected method (available since version 2.0.8)

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

构建列的注释规范。

protected string buildCommentString ( )
return string

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

                protected function buildCommentString()
{
    return '';
}

            
buildCompleteString() protected method (available since version 2.0.8)

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

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

protected string buildCompleteString ( $format )
$format string

定义的格式。

return 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()

构建列的默认值规范。

protected string buildDefaultString ( )
return string

包含列默认值的字符串。

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

            
buildDefaultValue() 受保护方法

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

返回列的默认值。

protected string|null buildDefaultValue ( )
return 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() 受保护方法 (从版本 2.0.8 开始可用)

定义在: yii\db\ColumnSchemaBuilder::buildFirstString()

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

protected string buildFirstString ( )
return string

包含 FIRST 约束的字符串。

                protected function buildFirstString()
{
    return '';
}

            
buildLengthString() 受保护方法

定义在: 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() 受保护方法

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

构建列的 not null 约束。

protected string buildNotNullString ( )
return string

如果 $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() 受保护方法

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

构建列的 unique 约束。

protected string buildUniqueString ( )
return string

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

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

            
buildUnsignedString() 受保护方法 (从版本 2.0.7 开始可用)

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

protected string buildUnsignedString ( )
return string

包含 UNSIGNED 关键字的字符串。

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

            
canGetProperty() 公共方法

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

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

属性可读,如果

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

另请参见 canSetProperty()

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

属性名称

$checkVars boolean

是否将成员变量视为属性

return 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 为 true 时);

另请参见 canGetProperty()

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

属性名称

$checkVars boolean

是否将成员变量视为属性

return boolean

属性是否可写

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

            
check() 公共方法

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

为列设置 CHECK 约束。

public $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()

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

public static string className ( )
return string

此类的完全限定名。

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

            
comment() 公共方法 (从版本 2.0.8 开始可用)

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

指定列的注释。

public $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 ( )
return array

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

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

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

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

返回列类型的类别。

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

方法名称

return boolean

方法是否已定义

                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 string

属性名称

$checkVars boolean

是否将成员变量视为属性

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