類別 yii\db\oci\ColumnSchemaBuilder
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 |
公開方法
受保護的方法
方法 | 描述 | 定義於 |
---|---|---|
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 |
方法詳細資訊
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()");
}
定義於: 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);
}
定義於: 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);
}
定義於: yii\base\BaseObject::__isset()
檢查屬性是否已設定,即已定義且非空值。
請勿直接呼叫此方法,因為它是 PHP 魔術方法,將在執行 isset($object->property)
時隱式呼叫。
請注意,如果屬性未定義,將傳回 false。
public 布林值 __isset ( $name ) | ||
$name | 字串 |
屬性名稱或事件名稱 |
return | 布林值 |
具名屬性是否已設定(非空值)。 |
---|
public function __isset($name)
{
$getter = 'get' . $name;
if (method_exists($this, $getter)) {
return $this->$getter() !== null;
}
return false;
}
定義於: 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);
}
}
為欄位的綱要建立完整的字串。
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);
}
定義於: yii\base\BaseObject::__unset()
將物件屬性設定為 null。
請勿直接呼叫此方法,因為它是 PHP 魔術方法,將在執行 unset($object->property)
時隱式呼叫。
請注意,如果屬性未定義,此方法將不會執行任何動作。如果屬性為唯讀,則會擲回例外。
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);
}
}
public $this after ( $after ) | ||
$after | 字串 |
此欄位將新增在其後的欄位。 |
public function after($after)
{
$this->after = $after;
return $this;
}
public $this append ( $sql ) | ||
$sql | 字串 |
要附加的 SQL 字串。 |
public function append($sql)
{
$this->append = $sql;
return $this;
}
定義於: yii\db\ColumnSchemaBuilder::buildAfterString()
為欄位建立 after 限制字串。預設為不支援。
protected 字串 buildAfterString ( ) | ||
return | 字串 |
包含 AFTER 限制的字串。 |
---|
protected function buildAfterString()
{
return '';
}
定義於: yii\db\ColumnSchemaBuilder::buildAppendString()
建立附加到欄位定義的自訂字串。
protected 字串 buildAppendString ( ) | ||
return | 字串 |
要附加的自訂字串。 |
---|
protected function buildAppendString()
{
return $this->append !== null ? ' ' . $this->append : '';
}
定義於: yii\db\ColumnSchemaBuilder::buildCheckString()
為欄位建立 check 限制字串。
protected 字串 buildCheckString ( ) | ||
return | 字串 |
包含 CHECK 限制的字串。 |
---|
protected function buildCheckString()
{
return $this->check !== null ? " CHECK ({$this->check})" : '';
}
定義於: yii\db\ColumnSchemaBuilder::buildCommentString()
為欄位建立註解規格字串。
protected 字串 buildCommentString ( ) | ||
return | 字串 |
包含 COMMENT 關鍵字和註解本身的字串 |
---|
protected function buildCommentString()
{
return '';
}
定義於: 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);
}
定義於: yii\db\ColumnSchemaBuilder::buildDefaultString()
為欄位建立預設值規格字串。
protected 字串 buildDefaultString ( ) | ||
return | 字串 |
包含欄位預設值的字串。 |
---|
protected function buildDefaultString()
{
$defaultValue = $this->buildDefaultValue();
if ($defaultValue === null) {
return '';
}
return ' DEFAULT ' . $defaultValue;
}
定義於: 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;
}
定義於: yii\db\ColumnSchemaBuilder::buildFirstString()
為欄位建立 first 限制字串。預設為不支援。
protected 字串 buildFirstString ( ) | ||
return | 字串 |
包含 FIRST 限制的字串。 |
---|
protected function buildFirstString()
{
return '';
}
定義於: 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})";
}
定義於: 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 '';
}
定義於: yii\db\ColumnSchemaBuilder::buildUniqueString()
為欄位建立 unique 限制字串。
protected 字串 buildUniqueString ( ) | ||
return | 字串 |
如果 $isUnique 為 true,則傳回字串 'UNIQUE',否則傳回空字串。 |
---|
protected function buildUniqueString()
{
return $this->isUnique ? ' UNIQUE' : '';
}
為欄位建立 unsigned 字串。預設為不支援。
protected 字串 buildUnsignedString ( ) | ||
return | 字串 |
包含 UNSIGNED 關鍵字的字串。 |
---|
protected function buildUnsignedString()
{
return $this->isUnsigned ? ' UNSIGNED' : '';
}
定義於: 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);
}
定義於: 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);
}
定義於: yii\db\ColumnSchemaBuilder::check()
為欄位設定 CHECK
限制。
public $this check ( $check ) | ||
$check | 字串 |
要新增的 |
public function check($check)
{
$this->check = $check;
return $this;
}
::class
。
定義於: yii\base\BaseObject::className()
傳回此類別的完整限定名稱。
public static 字串 className ( ) | ||
return | 字串 |
此類別的完整限定名稱。 |
---|
public static function className()
{
return get_called_class();
}
定義於: yii\db\ColumnSchemaBuilder::comment()
指定欄位的註解。
public $this comment ( $comment ) | ||
$comment | 字串 |
註解 |
public function comment($comment)
{
$this->comment = $comment;
return $this;
}
Defined in: yii\db\ColumnSchemaBuilder::defaultExpression()
為欄位指定預設 SQL 運算式。
public $this defaultExpression ( $default ) | ||
$default | 字串 |
預設值表達式。 |
public function defaultExpression($default)
{
$this->default = new Expression($default);
return $this;
}
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;
}
Defined in: yii\db\ColumnSchemaBuilder::getCategoryMap()
public array getCategoryMap ( ) | ||
return | 陣列 |
抽象欄位類型 (鍵) 到類型類別 (值) 的映射。 |
---|
public function getCategoryMap()
{
return static::$typeCategoryMap;
}
Defined in: yii\db\ColumnSchemaBuilder::getTypeCategory()
傳回欄位類型的類別。
protected string getTypeCategory ( ) | ||
return | 字串 |
包含資料行類型類別名稱的字串。 |
---|
protected function getTypeCategory()
{
return isset($this->categoryMap[$this->type]) ? $this->categoryMap[$this->type] : null;
}
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);
}
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);
}
public void init ( ) |
public function init()
{
}
Defined in: yii\db\ColumnSchemaBuilder::notNull()
為欄位新增 NOT NULL
限制。
public $this notNull ( ) |
public function notNull()
{
$this->isNotNull = true;
return $this;
}
Defined in: yii\db\ColumnSchemaBuilder::null()
為欄位新增 NULL
限制。
public $this null ( ) |
public function null()
{
$this->isNotNull = false;
return $this;
}
Defined in: yii\db\ColumnSchemaBuilder::setCategoryMap()
public void setCategoryMap ( $categoryMap ) | ||
$categoryMap | 陣列 |
抽象欄位類型 (鍵) 到類型類別 (值) 的映射。 |
public function setCategoryMap($categoryMap)
{
static::$typeCategoryMap = $categoryMap;
}
Defined in: yii\db\ColumnSchemaBuilder::unique()
為欄位新增 UNIQUE
限制。
public $this unique ( ) |
public function unique()
{
$this->isUnique = true;
return $this;
}
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;
}
註冊 或 登入 以進行評論。