0 フォロワー

クラス yii\db\TableSchema

継承yii\db\TableSchema » yii\base\BaseObject
実装yii\base\Configurable
サブクラスyii\db\mssql\TableSchema
利用可能バージョン2.0
ソースコード https://github.com/yiisoft/yii2/blob/master/framework/db/TableSchema.php

TableSchema は、データベーステーブルのメタデータを表現します。

公開プロパティ

継承されたプロパティを非表示

プロパティ 説明 定義元
$columnNames 配列 列名のリスト。 yii\db\TableSchema
$columns yii\db\ColumnSchema[] このテーブルの列メタデータ。 yii\db\TableSchema
$foreignKeys 配列 このテーブルの外部キー。 yii\db\TableSchema
$fullName 文字列 このテーブルの完全名。スキーマ名プレフィックスが含まれる場合もあります。 yii\db\TableSchema
$name 文字列 このテーブルの名前。 yii\db\TableSchema
$primaryKey 文字列[] このテーブルの主キー。 yii\db\TableSchema
$schemaName 文字列 このテーブルが属するスキーマの名前。 yii\db\TableSchema
$sequenceName 文字列|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

プロパティの詳細

継承されたプロパティを非表示

$columnNames public property

列名のリスト。

public array $columnNames null
$columns public property

このテーブルの列メタデータ。各配列要素はyii\db\ColumnSchemaオブジェクトで、列名でインデックスされています。

$foreignKeys public property

このテーブルの外キー。各配列要素は以下の構造です。

[
 'ForeignTableName',
 'fk1' => 'pk1',  // pk1 is in foreign table
 'fk2' => 'pk2',  // if composite foreign key
]
public array $foreignKeys = []
$fullName public property

スキーマ名プレフィックス(存在する場合)を含む、このテーブルの完全名。スキーマ名がデフォルトのスキーマ名と同じ場合は、スキーマ名は含まれません。

public string $fullName null
$name public property

このテーブルの名前。スキーマ名は含まれません。$fullName を使用して、スキーマ名プレフィックス付きの名前を取得します。

public string $name null
$primaryKey public property

このテーブルの主キー。

public string[] $primaryKey = []
$schemaName public property

このテーブルが属するスキーマの名前。

public string $schemaName null
$sequenceName public property

主キーのシーケンス名。シーケンスがない場合はnull。

public string|null $sequenceName null

メソッドの詳細

継承されたメソッドを非表示

__call() public method

定義場所: yii\base\BaseObject::__call()

クラスメソッドではない、指定されたメソッドを呼び出します。

これはPHPのマジックメソッドであり、未知のメソッドが呼び出された際に暗黙的に呼び出されるため、直接呼び出さないでください。

public mixed __call ( $name, $params )
$name 文字列

メソッド名

$params 配列

メソッドパラメータ

戻り値 mixed

メソッドの戻り値

例外 yii\base\UnknownMethodException

未知のメソッド呼び出し時

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

            
__construct() public method

定義場所: yii\base\BaseObject::__construct()

コンストラクタ。

デフォルトの実装では、次の2つのことを行います。

  • 指定された設定$configを使用してオブジェクトを初期化します。
  • init() を呼び出します。

このメソッドを子クラスでオーバーライドする場合は、

  • コンストラクタの最後のパラメータが、ここにある$configのような設定配列であることをお勧めします。
  • コンストラクタの最後に親の実装を呼び出してください。
public void __construct ( $config = [] )
$config 配列

オブジェクトのプロパティを初期化するために使用される名前と値のペア

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

            
__get() public method

定義場所: yii\base\BaseObject::__get()

オブジェクトプロパティの値を返します。

これはPHPのマジックメソッドであり、$value = $object->property;を実行した際に暗黙的に呼び出されるため、直接呼び出さないでください。

__set() も参照してください。

public mixed __get ( $name )
$name 文字列

プロパティ名

戻り値 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() public method

定義場所: yii\base\BaseObject::__isset()

プロパティが設定されているかどうか(定義されていてnullではない)を確認します。

これはPHPのマジックメソッドであり、isset($object->property)を実行した際に暗黙的に呼び出されるため、直接呼び出さないでください。

プロパティが定義されていない場合は、falseが返されることに注意してください。

https://www.php.net/manual/en/function.isset.php も参照してください。

public boolean __isset ( $name )
$name 文字列

プロパティ名またはイベント名

戻り値 boolean

指定されたプロパティが設定されているかどうか(nullでないか)。

                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 文字列

プロパティ名またはイベント名

$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() publicメソッド

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

オブジェクトプロパティをnullに設定します。

このメソッドはPHPのマジックメソッドであり、`unset($object->property)` を実行した際に暗黙的に呼び出されるため、直接呼び出さないでください。

プロパティが定義されていない場合、このメソッドは何もしません。プロパティが読み取り専用の場合、例外をスローします。

こちらも参照してください https://www.php.net/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);
    }
}

            
canGetProperty() publicメソッド

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

プロパティを読み取ることができるかどうかを示す値を返します。

プロパティは、以下の場合に読み取り可能です。

  • 指定された名前と関連付けられたゲッターメソッドがクラスに存在する場合(この場合、プロパティ名は大小文字を区別しません)。
  • 指定された名前のメンバ変数がクラスに存在する場合(`$checkVars` が true の場合)。

こちらも参照してください canSetProperty().

public boolean canGetProperty ( $name, $checkVars true )
$name 文字列

プロパティ名

$checkVars boolean

メンバ変数をプロパティとして扱うかどうか

戻り値 boolean

プロパティを読み取ることができるかどうか

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

            
canSetProperty() publicメソッド

定義: yii\base\BaseObject::canSetProperty()

プロパティを設定できるかどうかを示す値を返します。

プロパティは、以下の場合に書き込み可能です。

  • 指定された名前と関連付けられたセッターメソッドがクラスに存在する場合(この場合、プロパティ名は大小文字を区別しません)。
  • 指定された名前のメンバ変数がクラスに存在する場合(`$checkVars` が true の場合)。

こちらも参照してください canGetProperty().

public boolean canSetProperty ( $name, $checkVars true )
$name 文字列

プロパティ名

$checkVars boolean

メンバ変数をプロパティとして扱うかどうか

戻り値 boolean

プロパティを書き込むことができるかどうか

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

            
className() public staticメソッド
2.0.14より非推奨。PHP >= 5.5では、代わりに`::class`を使用してください。

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

このクラスの完全修飾名を返します。

public static string className ( )
戻り値 文字列

このクラスの完全修飾名。

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

            
fixPrimaryKey() publicメソッド

このテーブルの主キーを手動で指定します。

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() publicメソッド

指定された列のメタデータを取得します。

これは、指定された名前のカラムが存在しない場合でも、カラムを取得するための便利なメソッドです。

public yii\db\ColumnSchema|null getColumn ( $name )
$name 文字列

カラム名

戻り値 yii\db\ColumnSchema|null

指定されたカラムのメタデータ。指定されたカラムが存在しない場合はNull。

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

            
getColumnNames() publicメソッド

このテーブルのすべての列の名前を返します。

public array getColumnNames ( )
戻り値 配列

カラム名のリスト

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

            
hasMethod() publicメソッド

定義: yii\base\BaseObject::hasMethod()

メソッドが定義されているかどうかを示す値を返します。

デフォルトの実装は、PHP関数`method_exists()`の呼び出しです。PHPのマジックメソッド`__call()`を実装した場合は、このメソッドをオーバーライドできます。

public boolean hasMethod ( $name )
$name 文字列

メソッド名

戻り値 boolean

メソッドが定義されているかどうか

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

            
hasProperty() publicメソッド

定義: yii\base\BaseObject::hasProperty()

プロパティが定義されているかどうかを示す値を返します。

プロパティは、以下の場合に定義されています。

  • 指定された名前と関連付けられたゲッターまたはセッターメソッドがクラスに存在する場合(この場合、プロパティ名は大小文字を区別しません)。
  • 指定された名前のメンバ変数がクラスに存在する場合(`$checkVars` が true の場合)。

こちらも参照してください

public boolean hasProperty ( $name, $checkVars true )
$name 文字列

プロパティ名

$checkVars boolean

メンバ変数をプロパティとして扱うかどうか

戻り値 boolean

プロパティが定義されているかどうか

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

            
init() publicメソッド

定義: yii\base\BaseObject::init()

オブジェクトを初期化します。

このメソッドは、オブジェクトが指定された設定で初期化された後、コンストラクタの最後に呼び出されます。

public void init ( )

                public function init()
{
}