0 追蹤者

Class yii\db\mssql\TableSchema

繼承yii\db\mssql\TableSchema » yii\db\TableSchema » yii\base\BaseObject
實作yii\base\Configurable
自版本起可用2.0
原始碼 https://github.com/yiisoft/yii2/blob/master/framework/db/mssql/TableSchema.php

TableSchema 代表資料庫表格的元數據。

公開屬性

隱藏繼承的屬性

屬性 類型 描述 定義於
$catalogName string|null 此表格所屬的目錄 (資料庫) 名稱。 yii\db\mssql\TableSchema
$columnNames array 欄位名稱列表。 yii\db\TableSchema
$columns yii\db\ColumnSchema[] 此表格的欄位元數據。 yii\db\TableSchema
$foreignKeys array 此表格的外鍵。 yii\db\TableSchema
$fullName string 此表格的完整名稱,包含 schema 名稱前綴 (如果有的話)。 yii\db\TableSchema
$name string 此表格的名稱。 yii\db\TableSchema
$primaryKey string[] 此表格的主鍵。 yii\db\TableSchema
$schemaName string 此表格所屬的 schema 名稱。 yii\db\TableSchema
$sequenceName string|null 主鍵的序列名稱。 yii\db\TableSchema

公開方法

隱藏繼承的方法

方法 描述 定義於
__call() 呼叫指定的非類別方法。 yii\base\BaseObject
__construct() 建構子。 yii\base\BaseObject
__get() 返回物件屬性的值。 yii\base\BaseObject
__isset() 檢查屬性是否已設定,即已定義且非 null。 yii\base\BaseObject
__set() 設定物件屬性的值。 yii\base\BaseObject
__unset() 將物件屬性設為 null。 yii\base\BaseObject
canGetProperty() 返回一個值,指示屬性是否可讀取。 yii\base\BaseObject
canSetProperty() 返回一個值,指示屬性是否可設定。 yii\base\BaseObject
className() 返回此類別的完整限定名稱。 yii\base\BaseObject
fixPrimaryKey() 手動指定此表格的主鍵。 yii\db\TableSchema
getColumn() 取得指定名稱的欄位元數據。 yii\db\TableSchema
getColumnNames() 返回此表格中所有欄位的名稱。 yii\db\TableSchema
hasMethod() 返回一個值,指示方法是否已定義。 yii\base\BaseObject
hasProperty() 返回一個值,指示屬性是否已定義。 yii\base\BaseObject
init() 初始化物件。 yii\base\BaseObject

屬性詳情

隱藏繼承的屬性

$catalogName 公開屬性

此表格所屬的目錄 (資料庫) 名稱。預設為 null,表示沒有目錄 (或目前的資料庫)。

public string|null $catalogName null

方法詳情

隱藏繼承的方法

__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\base\BaseObject::__construct()

建構子。

預設實作會做兩件事

  • 使用給定的配置 $config 初始化物件。
  • 呼叫 init()

如果此方法在子類別中被覆寫,建議

  • 建構子的最後一個參數是一個配置陣列,就像這裡的 $config 一樣。
  • 在建構子結尾呼叫父類別的實作。
public void __construct ( $config = [] )
$config array

將用於初始化物件屬性的名稱-值對

                public function __construct($config = [])
{
    if (!empty($config)) {
        Yii::configure($this, $config);
    }
    $this->init();
}

            
__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.dev.org.tw/manual/en/function.isset.php

public boolean __isset ( $name )
$name string

屬性名稱或事件名稱

返回 boolean

指定名稱的屬性是否已設定 (非 null)。

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

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

            
canGetProperty() 公開方法

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

返回一個值,指示屬性是否可讀取。

如果屬性可讀取,則

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

另請參閱 canSetProperty()

public boolean 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 為 true 時);

另請參閱 canGetProperty()

public boolean 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);
}

            
className() 公開靜態方法
自 2.0.14 版本起已棄用。在 PHP >=5.5 版本,請改用 ::class

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

返回此類別的完整限定名稱。

public static string className ( )
返回 string

此類別的完整限定名稱。

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

            
fixPrimaryKey() 公開方法

定義於: yii\db\TableSchema::fixPrimaryKey()

手動指定此表格的主鍵。

public void fixPrimaryKey ( $keys )
$keys string|array

主鍵 (可以是複合鍵)

拋出 yii\base\InvalidArgumentException

如果在表格中找不到指定的鍵。

                public function fixPrimaryKey($keys)
{
    $keys = (array) $keys;
    $this->primaryKey = $keys;
    foreach ($this->columns as $column) {
        $column->isPrimaryKey = false;
    }
    foreach ($keys as $key) {
        if (isset($this->columns[$key])) {
            $this->columns[$key]->isPrimaryKey = true;
        } else {
            throw new InvalidArgumentException("Primary key '$key' cannot be found in table '{$this->name}'.");
        }
    }
}

            
getColumn() 公開方法

定義於: yii\db\TableSchema::getColumn()

取得指定名稱的欄位元數據。

這是一個方便的方法,即使指定的欄位不存在,也能檢索它。

public yii\db\ColumnSchema|null getColumn ( $name )
$name string

欄位名稱

返回 yii\db\ColumnSchema|null

指定名稱的欄位元數據。如果指定的欄位不存在,則為 Null。

                public function getColumn($name)
{
    return isset($this->columns[$name]) ? $this->columns[$name] : null;
}

            
getColumnNames() 公開方法

定義於: yii\db\TableSchema::getColumnNames()

返回此表格中所有欄位的名稱。

public array getColumnNames ( )
返回 array

欄位名稱列表

                public function getColumnNames()
{
    return array_keys($this->columns);
}

            
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 為 true 時);

另請參閱

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()
{
}