1 フォロワー

トレイト yii\db\SchemaBuilderTrait

実装クラスyii\db\Migration
利用可能バージョン2.0.6
ソースコード https://github.com/yiisoft/yii2/blob/master/framework/db/SchemaBuilderTrait.php

SchemaBuilderTrait は、yii\db\ColumnSchemaBuilder のインスタンスを作成するためのショートカットメソッドを含んでいます。

これらは、PHPインターフェースを使用してデータベーススキーマタイプを定義するデータベースマイグレーションで使用できます。これは、アプリケーションが異なるDBMSで同じように動作するように、DBMSに依存しない方法でスキーマを定義するのに役立ちます。

たとえば、マイグレーションファイル内で次のコードを使用できます。

$this->createTable('example_table', [
  'id' => $this->primaryKey(),
  'name' => $this->string(64)->notNull(),
  'type' => $this->integer()->notNull()->defaultValue(10),
  'description' => $this->text(),
  'rule_name' => $this->string(64),
  'data' => $this->text(),
  'created_at' => $this->datetime()->notNull(),
  'updated_at' => $this->datetime(),
]);

公開メソッド

継承メソッドを非表示

メソッド 説明 定義元
bigInteger() bigint カラムを作成します。 yii\db\SchemaBuilderTrait
bigPrimaryKey() 大きなプライマリキーカラムを作成します。 yii\db\SchemaBuilderTrait
binary() バイナリ列を作成します。 yii\db\SchemaBuilderTrait
boolean() ブール値列を作成します。 yii\db\SchemaBuilderTrait
char() char 列を作成します。 yii\db\SchemaBuilderTrait
date() date 列を作成します。 yii\db\SchemaBuilderTrait
dateTime() datetime 列を作成します。 yii\db\SchemaBuilderTrait
decimal() decimal 列を作成します。 yii\db\SchemaBuilderTrait
double() double 列を作成します。 yii\db\SchemaBuilderTrait
float() float 列を作成します。 yii\db\SchemaBuilderTrait
integer() integer 列を作成します。 yii\db\SchemaBuilderTrait
json() JSON 列を作成します。 yii\db\SchemaBuilderTrait
money() money 列を作成します。 yii\db\SchemaBuilderTrait
primaryKey() プライマリキー列を作成します。 yii\db\SchemaBuilderTrait
smallInteger() smallint 列を作成します。 yii\db\SchemaBuilderTrait
string() 文字列列を作成します。 yii\db\SchemaBuilderTrait
text() テキスト列を作成します。 yii\db\SchemaBuilderTrait
time() time 列を作成します。 yii\db\SchemaBuilderTrait
timestamp() timestamp 列を作成します。 yii\db\SchemaBuilderTrait
tinyInteger() tinyint 列を作成します。DBMS が tinyint をサポートしていない場合は、smallint が使用されます。 yii\db\SchemaBuilderTrait

保護されたメソッド

継承メソッドを非表示

メソッド 説明 定義元
getDb() yii\db\SchemaBuilderTrait

メソッドの詳細

継承メソッドを非表示

bigInteger() public メソッド (バージョン 2.0.6 から利用可能)

bigint カラムを作成します。

public yii\db\ColumnSchemaBuilder bigInteger ( $length null )
$length integer|null

列サイズまたは精度の定義。DBMS でサポートされていない場合は、このパラメーターは無視されます。

戻り値 yii\db\ColumnSchemaBuilder

さらにカスタマイズできる列インスタンス。

                public function bigInteger($length = null)
{
    return $this->getDb()->getSchema()->createColumnSchemaBuilder(Schema::TYPE_BIGINT, $length);
}

            
bigPrimaryKey() public メソッド (バージョン 2.0.6 から利用可能)

大きなプライマリキーカラムを作成します。

public yii\db\ColumnSchemaBuilder bigPrimaryKey ( $length null )
$length integer|null

列サイズまたは精度の定義。DBMS でサポートされていない場合は、このパラメーターは無視されます。

戻り値 yii\db\ColumnSchemaBuilder

さらにカスタマイズできる列インスタンス。

                public function bigPrimaryKey($length = null)
{
    return $this->getDb()->getSchema()->createColumnSchemaBuilder(Schema::TYPE_BIGPK, $length);
}

            
binary() public メソッド (バージョン 2.0.6 から利用可能)

バイナリ列を作成します。

public yii\db\ColumnSchemaBuilder binary ( $length null )
$length integer|null

列サイズまたは精度の定義。DBMS でサポートされていない場合は、このパラメーターは無視されます。

戻り値 yii\db\ColumnSchemaBuilder

さらにカスタマイズできる列インスタンス。

                public function binary($length = null)
{
    return $this->getDb()->getSchema()->createColumnSchemaBuilder(Schema::TYPE_BINARY, $length);
}

            
boolean() public メソッド (バージョン 2.0.6 から利用可能)

ブール値列を作成します。

public yii\db\ColumnSchemaBuilder boolean ( )
戻り値 yii\db\ColumnSchemaBuilder

さらにカスタマイズできる列インスタンス。

                public function boolean()
{
    return $this->getDb()->getSchema()->createColumnSchemaBuilder(Schema::TYPE_BOOLEAN);
}

            
char() public メソッド (バージョン 2.0.8 から利用可能)

char 列を作成します。

public yii\db\ColumnSchemaBuilder char ( $length null )
$length integer|null

列サイズ定義、つまり最大文字列長。DBMS でサポートされていない場合は、このパラメーターは無視されます。

戻り値 yii\db\ColumnSchemaBuilder

さらにカスタマイズできる列インスタンス。

                public function char($length = null)
{
    return $this->getDb()->getSchema()->createColumnSchemaBuilder(Schema::TYPE_CHAR, $length);
}

            
date() publicメソッド (バージョン2.0.6から利用可能)

date 列を作成します。

public yii\db\ColumnSchemaBuilder date ( )
戻り値 yii\db\ColumnSchemaBuilder

さらにカスタマイズできる列インスタンス。

                public function date()
{
    return $this->getDb()->getSchema()->createColumnSchemaBuilder(Schema::TYPE_DATE);
}

            
dateTime() publicメソッド (バージョン2.0.6から利用可能)

datetime 列を作成します。

public yii\db\ColumnSchemaBuilder dateTime ( $precision null )
$precision integer|null

カラム値の精度。カラムタイプに渡される最初の引数です (例: DATETIME(precision))。DBMSでサポートされていない場合は、このパラメータは無視されます。

戻り値 yii\db\ColumnSchemaBuilder

さらにカスタマイズできる列インスタンス。

                public function dateTime($precision = null)
{
    return $this->getDb()->getSchema()->createColumnSchemaBuilder(Schema::TYPE_DATETIME, $precision);
}

            
decimal() publicメソッド (バージョン2.0.6から利用可能)

decimal 列を作成します。

public yii\db\ColumnSchemaBuilder decimal ( $precision null, $scale null )
$precision integer|null

カラム値の精度。通常は桁数の合計です。カラムタイプに渡される最初の引数です (例: DECIMAL(precision, scale))。DBMSでサポートされていない場合は、このパラメータは無視されます。

$scale integer|null

カラム値の小数点以下の桁数。カラムタイプに渡される2番目の引数です (例: DECIMAL(precision, scale))。DBMSでサポートされていない場合は、このパラメータは無視されます。

戻り値 yii\db\ColumnSchemaBuilder

さらにカスタマイズできる列インスタンス。

                public function decimal($precision = null, $scale = null)
{
    $length = [];
    if ($precision !== null) {
        $length[] = $precision;
    }
    if ($scale !== null) {
        $length[] = $scale;
    }
    return $this->getDb()->getSchema()->createColumnSchemaBuilder(Schema::TYPE_DECIMAL, $length);
}

            
double() publicメソッド (バージョン2.0.6から利用可能)

double 列を作成します。

public yii\db\ColumnSchemaBuilder double ( $precision null )
$precision integer|null

カラム値の精度。カラムタイプに渡される最初の引数です (例: DOUBLE(precision))。DBMSでサポートされていない場合は、このパラメータは無視されます。

戻り値 yii\db\ColumnSchemaBuilder

さらにカスタマイズできる列インスタンス。

                public function double($precision = null)
{
    return $this->getDb()->getSchema()->createColumnSchemaBuilder(Schema::TYPE_DOUBLE, $precision);
}

            
float() publicメソッド (バージョン2.0.6から利用可能)

float 列を作成します。

public yii\db\ColumnSchemaBuilder float ( $precision null )
$precision integer|null

カラム値の精度。カラムタイプに渡される最初の引数です (例: FLOAT(precision))。DBMSでサポートされていない場合は、このパラメータは無視されます。

戻り値 yii\db\ColumnSchemaBuilder

さらにカスタマイズできる列インスタンス。

                public function float($precision = null)
{
    return $this->getDb()->getSchema()->createColumnSchemaBuilder(Schema::TYPE_FLOAT, $precision);
}

            
getDb() protected abstractメソッド

protected abstract yii\db\Connection getDb ( )
戻り値 yii\db\Connection

スキーマ構築に使用されるデータベース接続。

                abstract protected function getDb();

            
integer() publicメソッド (バージョン2.0.6から利用可能)

integer 列を作成します。

public yii\db\ColumnSchemaBuilder integer ( $length null )
$length integer|null

列サイズまたは精度の定義。DBMS でサポートされていない場合は、このパラメーターは無視されます。

戻り値 yii\db\ColumnSchemaBuilder

さらにカスタマイズできる列インスタンス。

                public function integer($length = null)
{
    return $this->getDb()->getSchema()->createColumnSchemaBuilder(Schema::TYPE_INTEGER, $length);
}

            
json() publicメソッド (バージョン2.0.14から利用可能)

JSON 列を作成します。

public yii\db\ColumnSchemaBuilder json ( )
戻り値 yii\db\ColumnSchemaBuilder

さらにカスタマイズできる列インスタンス。

スロー例外 yii\base\Exception

                public function json()
{
    /*
     * TODO Remove in Yii 2.1
     *
     * Disabled due to bug in MySQL extension
     * @link https://bugs.php.net/bug.php?id=70384
     */
    if (version_compare(PHP_VERSION, '5.6', '<') && $this->getDb()->getDriverName() === 'mysql') {
        throw new \yii\base\Exception('JSON column type is not supported in PHP < 5.6');
    }
    return $this->getDb()->getSchema()->createColumnSchemaBuilder(Schema::TYPE_JSON);
}

            
money() publicメソッド (バージョン2.0.6から利用可能)

money 列を作成します。

public yii\db\ColumnSchemaBuilder money ( $precision null, $scale null )
$precision integer|null

カラム値の精度。通常は桁数の合計です。カラムタイプに渡される最初の引数です (例: DECIMAL(precision, scale))。DBMSでサポートされていない場合は、このパラメータは無視されます。

$scale integer|null

カラム値の小数点以下の桁数。カラムタイプに渡される2番目の引数です (例: DECIMAL(precision, scale))。DBMSでサポートされていない場合は、このパラメータは無視されます。

戻り値 yii\db\ColumnSchemaBuilder

さらにカスタマイズできる列インスタンス。

                public function money($precision = null, $scale = null)
{
    $length = [];
    if ($precision !== null) {
        $length[] = $precision;
    }
    if ($scale !== null) {
        $length[] = $scale;
    }
    return $this->getDb()->getSchema()->createColumnSchemaBuilder(Schema::TYPE_MONEY, $length);
}

            
primaryKey() publicメソッド (バージョン2.0.6から利用可能)

プライマリキー列を作成します。

public yii\db\ColumnSchemaBuilder primaryKey ( $length null )
$length integer|null

列サイズまたは精度の定義。DBMS でサポートされていない場合は、このパラメーターは無視されます。

戻り値 yii\db\ColumnSchemaBuilder

さらにカスタマイズできる列インスタンス。

                public function primaryKey($length = null)
{
    return $this->getDb()->getSchema()->createColumnSchemaBuilder(Schema::TYPE_PK, $length);
}

            
smallInteger() publicメソッド (バージョン2.0.6から利用可能)

smallint 列を作成します。

public yii\db\ColumnSchemaBuilder smallInteger ( $length null )
$length integer|null

列サイズまたは精度の定義。DBMS でサポートされていない場合は、このパラメーターは無視されます。

戻り値 yii\db\ColumnSchemaBuilder

さらにカスタマイズできる列インスタンス。

                public function smallInteger($length = null)
{
    return $this->getDb()->getSchema()->createColumnSchemaBuilder(Schema::TYPE_SMALLINT, $length);
}

            
string() publicメソッド (バージョン2.0.6から利用可能)

文字列列を作成します。

public yii\db\ColumnSchemaBuilder string ( $length null )
$length integer|null

列サイズ定義、つまり最大文字列長。DBMS でサポートされていない場合は、このパラメーターは無視されます。

戻り値 yii\db\ColumnSchemaBuilder

さらにカスタマイズできる列インスタンス。

                public function string($length = null)
{
    return $this->getDb()->getSchema()->createColumnSchemaBuilder(Schema::TYPE_STRING, $length);
}

            
text() publicメソッド (バージョン2.0.6から利用可能)

テキスト列を作成します。

public yii\db\ColumnSchemaBuilder text ( )
戻り値 yii\db\ColumnSchemaBuilder

さらにカスタマイズできる列インスタンス。

                public function text()
{
    return $this->getDb()->getSchema()->createColumnSchemaBuilder(Schema::TYPE_TEXT);
}

            
time() publicメソッド (バージョン2.0.6から利用可能)

time 列を作成します。

public yii\db\ColumnSchemaBuilder time ( $precision null )
$precision integer|null

カラム値の精度。カラムタイプに渡される最初の引数です (例: TIME(precision))。DBMSでサポートされていない場合は、このパラメータは無視されます。

戻り値 yii\db\ColumnSchemaBuilder

さらにカスタマイズできる列インスタンス。

                public function time($precision = null)
{
    return $this->getDb()->getSchema()->createColumnSchemaBuilder(Schema::TYPE_TIME, $precision);
}

            
timestamp() publicメソッド (バージョン2.0.6から利用可能)

timestamp 列を作成します。

public yii\db\ColumnSchemaBuilder timestamp ( $precision null )
$precision integer|null

カラム値の精度。カラムタイプ(例:TIMESTAMP(precision))に渡される最初の引数です。DBMSでサポートされていない場合は、このパラメータは無視されます。

戻り値 yii\db\ColumnSchemaBuilder

さらにカスタマイズできる列インスタンス。

                public function timestamp($precision = null)
{
    return $this->getDb()->getSchema()->createColumnSchemaBuilder(Schema::TYPE_TIMESTAMP, $precision);
}

            
tinyInteger() publicメソッド (バージョン2.0.14から利用可能)

tinyint 列を作成します。DBMS が tinyint をサポートしていない場合は、smallint が使用されます。

public yii\db\ColumnSchemaBuilder tinyInteger ( $length null )
$length integer|null

列サイズまたは精度の定義。DBMS でサポートされていない場合は、このパラメーターは無視されます。

戻り値 yii\db\ColumnSchemaBuilder

さらにカスタマイズできる列インスタンス。

                public function tinyInteger($length = null)
{
    return $this->getDb()->getSchema()->createColumnSchemaBuilder(Schema::TYPE_TINYINT, $length);
}