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 字串 此欄位將被加入在哪个欄位之後。 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 布林值|null 欄位是否可為空值。 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\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() 為欄位建立 unsigned 字串。預設為不支援。 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() 公開方法

定義於: yii\base\BaseObject::__call()

呼叫未定義為類別方法的具名方法。

請勿直接呼叫此方法,因為它是 PHP 魔術方法,將在呼叫未知方法時隱式呼叫。

public mixed __call ( $name, $params )
$name 字串

方法名稱

$params 陣列

方法參數

return 混合

方法傳回值

throws 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 整數|字串|陣列|null

欄位的長度或精確度。請參閱 $length

$db yii\db\Connection|null

目前的資料庫連線。請參閱 $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 字串

屬性名稱

return 混合

屬性值

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() 公開方法

定義於: yii\base\BaseObject::__isset()

檢查屬性是否已設定,即已定義且非空值。

請勿直接呼叫此方法,因為它是 PHP 魔術方法,將在執行 isset($object->property) 時隱式呼叫。

請注意,如果屬性未定義,將傳回 false。

另請參閱 https://php.dev.org.tw/manual/en/function.isset.php

public 布林值 __isset ( $name )
$name 字串

屬性名稱或事件名稱

return 布林值

具名屬性是否已設定(非空值)。

                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 混合

屬性值

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 字串 __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() 公開方法

定義於: yii\base\BaseObject::__unset()

將物件屬性設定為 null。

請勿直接呼叫此方法,因為它是 PHP 魔術方法,將在執行 unset($object->property) 時隱式呼叫。

請注意,如果屬性未定義,此方法將不會執行任何動作。如果屬性為唯讀,則會擲回例外。

另請參閱 https://php.dev.org.tw/manual/en/function.unset.php

public void __unset ( $name )
$name 字串

屬性名稱

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() 公開方法 (自版本 2.0.8 起可用)

定義於: yii\db\ColumnSchemaBuilder::after()

為欄位新增 AFTER 限制。

注意:僅支援 MySQL、Oracle 和 Cubrid。

public $this after ( $after )
$after 字串

此欄位將新增在其後的欄位。

                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 字串 buildAfterString ( )
return 字串

包含 AFTER 限制的字串。

                protected function buildAfterString()
{
    return '';
}

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

定義於: yii\db\ColumnSchemaBuilder::buildAppendString()

建立附加到欄位定義的自訂字串。

protected 字串 buildAppendString ( )
return 字串

要附加的自訂字串。

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

            
buildCheckString() 受保護的方法

定義於: yii\db\ColumnSchemaBuilder::buildCheckString()

為欄位建立 check 限制字串。

protected 字串 buildCheckString ( )
return 字串

包含 CHECK 限制的字串。

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

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

定義於: yii\db\ColumnSchemaBuilder::buildCommentString()

為欄位建立註解規格字串。

protected 字串 buildCommentString ( )
return 字串

包含 COMMENT 關鍵字和註解本身的字串

                protected function buildCommentString()
{
    return '';
}

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

定義於: yii\db\ColumnSchemaBuilder::buildCompleteString()

從輸入格式傳回完整的欄位定義。

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

定義的格式。

return 字串

包含完整欄位定義的字串。

                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 字串 buildDefaultString ( )
return 字串

包含欄位預設值的字串。

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

            
buildDefaultValue() 受保護的方法

定義於: yii\db\ColumnSchemaBuilder::buildDefaultValue()

傳回欄位的預設值。

protected 字串|null buildDefaultValue ( )
return 字串|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 字串 buildFirstString ( )
return 字串

包含 FIRST 限制的字串。

                protected function buildFirstString()
{
    return '';
}

            
buildLengthString() 受保護的方法

定義於: yii\db\ColumnSchemaBuilder::buildLengthString()

建立欄位的長度/精確度部分。

protected 字串 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 字串 buildNotNullString ( )
return 字串

如果 $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 字串 buildUniqueString ( )
return 字串

如果 $isUnique 為 true,則傳回字串 'UNIQUE',否則傳回空字串。

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

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

為欄位建立 unsigned 字串。預設為不支援。

protected 字串 buildUnsignedString ( )
return 字串

包含 UNSIGNED 關鍵字的字串。

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

            
canGetProperty() 公開方法

定義於: yii\base\BaseObject::canGetProperty()

傳回值,指示是否可以讀取屬性。

如果屬性可讀取,則為:

  • 類別具有與指定名稱相關聯的 getter 方法(在此情況下,屬性名稱不區分大小寫);
  • 類別具有具有指定名稱的成員變數(當 $checkVars 為 true 時);

另請參閱 canSetProperty()

public 布林值 canGetProperty ( $name, $checkVars true )
$name 字串

屬性名稱

$checkVars 布林值

是否將成員變數視為屬性

return 布林值

屬性是否可讀取

                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 布林值 canSetProperty ( $name, $checkVars true )
$name 字串

屬性名稱

$checkVars 布林值

是否將成員變數視為屬性

return 布林值

屬性是否可寫入

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

要新增的 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 字串 className ( )
return 字串

此類別的完整限定名稱。

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

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

定義於: 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() public method

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

為欄位指定預設值。

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

預設值。

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

            
first() public method (available since version 2.0.8)

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

為欄位新增 FIRST 限制。

注意:僅支援 MySQL、Oracle 和 Cubrid。

public $this first ( )

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

            
getCategoryMap() public method (available since version 2.0.43)
public array getCategoryMap ( )
return 陣列

抽象欄位類型 (鍵) 到類型類別 (值) 的映射。

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

            
getTypeCategory() protected method (available since version 2.0.8)

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

傳回欄位類型的類別。

protected string getTypeCategory ( )
return 字串

包含資料行類型類別名稱的字串。

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

            
hasMethod() public method

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

傳回值,指示是否已定義方法。

預設實作是呼叫 php 函數 method_exists()。當您實作 php 魔術方法 __call() 時,您可以覆寫此方法。

public boolean hasMethod ( $name )
$name 字串

方法名稱

return 布林值

方法是否已定義

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

            
hasProperty() public method

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

傳回值,指示是否已定義屬性。

屬性在以下情況被定義:

  • 類別具有與指定名稱相關聯的 getter 或 setter 方法(在這種情況下,屬性名稱不區分大小寫);
  • 類別具有具有指定名稱的成員變數(當 $checkVars 為 true 時);

參見

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

屬性名稱

$checkVars 布林值

是否將成員變數視為屬性

return 布林值

屬性是否已定義

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

            
init() public method

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

初始化物件。

在物件使用給定組態初始化後,此方法會在建構函式的結尾被調用。

public void init ( )

                public function init()
{
}

            
notNull() public method

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

為欄位新增 NOT NULL 限制。

public $this notNull ( )

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

            
null() public method (available since version 2.0.9)

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

為欄位新增 NULL 限制。

public $this null ( )

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

            
setCategoryMap() public method (available since version 2.0.43)
public void setCategoryMap ( $categoryMap )
$categoryMap 陣列

抽象欄位類型 (鍵) 到類型類別 (值) 的映射。

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

            
unique() public method

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

為欄位新增 UNIQUE 限制。

public $this unique ( )

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

            
unsigned() public method (available since version 2.0.7)

Defined in: 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;
}