1 關注者

Trait 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() 建立一個 big primary key 欄位。 yii\db\SchemaBuilderTrait
binary() 建立一個 binary 欄位。 yii\db\SchemaBuilderTrait
boolean() 建立一個 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() 建立一個 primary key 欄位。 yii\db\SchemaBuilderTrait
smallInteger() 建立一個 smallint 欄位。 yii\db\SchemaBuilderTrait
string() 建立一個 string 欄位。 yii\db\SchemaBuilderTrait
text() 建立一個 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 起可用)

建立一個 big primary key 欄位。

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

            

建立一個 JSON 欄位。

public
回傳 yii\db\ColumnSchemaBuilder

可以進一步自訂的欄位實例。

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