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() 创建一个日期列。 yii\db\SchemaBuilderTrait
dateTime() 创建一个日期时间列。 yii\db\SchemaBuilderTrait
decimal() 创建一个 decimal 列。 yii\db\SchemaBuilderTrait
double() 创建一个 double 列。 yii\db\SchemaBuilderTrait
float() 创建一个 float 列。 yii\db\SchemaBuilderTrait
integer() 创建一个整数列。 yii\db\SchemaBuilderTrait
json() 创建一个 JSON 列。 yii\db\SchemaBuilderTrait
money() 创建一个货币列。 yii\db\SchemaBuilderTrait
primaryKey() 创建一个主键列。 yii\db\SchemaBuilderTrait
smallInteger() 创建一个 smallint 列。 yii\db\SchemaBuilderTrait
string() 创建一个字符串列。 yii\db\SchemaBuilderTrait
text() 创建一个文本列。 yii\db\SchemaBuilderTrait
time() 创建一个时间列。 yii\db\SchemaBuilderTrait
timestamp() 创建一个时间戳列。 yii\db\SchemaBuilderTrait
tinyInteger() 创建一个 tinyint 列。如果 DBMS 不支持 tinyint,则将使用 smallint。 yii\db\SchemaBuilderTrait

受保护的方法

隐藏继承的方法

方法 描述 定义于
getDb() yii\db\SchemaBuilderTrait

方法详情

隐藏继承的方法

bigInteger() 公共方法 (自版本 2.0.6 起可用)

创建一个 bigint 列。

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

列大小或精度定义。如果 DBMS 不支持,则此参数将被忽略。

返回 yii\db\ColumnSchemaBuilder

可以进一步自定义的列实例。

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

            
bigPrimaryKey() 公共方法 (自版本 2.0.6 起可用)

创建一个大的主键列。

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

列大小或精度定义。如果 DBMS 不支持,则此参数将被忽略。

返回 yii\db\ColumnSchemaBuilder

可以进一步自定义的列实例。

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

            
binary() 公共方法 (自版本 2.0.6 起可用)

创建一个二进制列。

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

列大小或精度定义。如果 DBMS 不支持,则此参数将被忽略。

返回 yii\db\ColumnSchemaBuilder

可以进一步自定义的列实例。

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

            
boolean() 公共方法 (自版本 2.0.6 起可用)

创建一个布尔列。

public yii\db\ColumnSchemaBuilder boolean ( )
返回 yii\db\ColumnSchemaBuilder

可以进一步自定义的列实例。

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

            
char() 公共方法 (自版本 2.0.8 起可用)

创建一个 char 列。

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

列大小定义,即最大字符串长度。如果 DBMS 不支持,则此参数将被忽略。

返回 yii\db\ColumnSchemaBuilder

可以进一步自定义的列实例。

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

            
date() 公共方法 (自版本 2.0.6 起可用)

创建一个日期列。

public yii\db\ColumnSchemaBuilder date ( )
返回 yii\db\ColumnSchemaBuilder

可以进一步自定义的列实例。

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

            
dateTime() 公共方法 (自版本 2.0.6 起可用)

创建一个日期时间列。

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

列值精度。传递给列类型的第一个参数,例如 DATETIME(precision)。如果数据库管理系统不支持,则忽略此参数。

返回 yii\db\ColumnSchemaBuilder

可以进一步自定义的列实例。

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

            
decimal() 公共方法 (自版本 2.0.6 起可用)

创建一个 decimal 列。

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

列值精度,通常是数字的总位数。传递给列类型的第一个参数,例如 DECIMAL(precision, scale)。如果数据库管理系统不支持,则忽略此参数。

$scale 整数|

列值小数位数,通常是小数点后的数字位数。传递给列类型的第二个参数,例如 DECIMAL(precision, scale)。如果数据库管理系统不支持,则忽略此参数。

返回 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() 公共方法 (自版本 2.0.6 起可用)

创建一个 double 列。

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

列值精度。传递给列类型的第一个参数,例如 DOUBLE(precision)。如果数据库管理系统不支持,则忽略此参数。

返回 yii\db\ColumnSchemaBuilder

可以进一步自定义的列实例。

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

            
float() 公共方法 (自版本 2.0.6 起可用)

创建一个 float 列。

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

列值精度。传递给列类型的第一个参数,例如 FLOAT(precision)。如果数据库管理系统不支持,则忽略此参数。

返回 yii\db\ColumnSchemaBuilder

可以进一步自定义的列实例。

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

            
getDb() 受保护的抽象方法

protected abstract yii\db\Connection getDb ( )
返回 yii\db\Connection

用于架构构建的数据库连接。

                abstract protected function getDb();

            
integer() 公共方法 (自版本 2.0.6 起可用)

创建一个整数列。

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

列大小或精度定义。如果 DBMS 不支持,则此参数将被忽略。

返回 yii\db\ColumnSchemaBuilder

可以进一步自定义的列实例。

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

            
json() 公共方法 (自版本 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() 公共方法 (自版本 2.0.6 起可用)

创建一个货币列。

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

列值精度,通常是数字的总位数。传递给列类型的第一个参数,例如 DECIMAL(precision, scale)。如果数据库管理系统不支持,则忽略此参数。

$scale 整数|

列值小数位数,通常是小数点后的数字位数。传递给列类型的第二个参数,例如 DECIMAL(precision, scale)。如果数据库管理系统不支持,则忽略此参数。

返回 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() 公共方法 (自版本 2.0.6 起可用)

创建一个主键列。

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

列大小或精度定义。如果 DBMS 不支持,则此参数将被忽略。

返回 yii\db\ColumnSchemaBuilder

可以进一步自定义的列实例。

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

            
smallInteger() 公共方法 (自版本 2.0.6 起可用)

创建一个 smallint 列。

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

列大小或精度定义。如果 DBMS 不支持,则此参数将被忽略。

返回 yii\db\ColumnSchemaBuilder

可以进一步自定义的列实例。

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

            
string() 公共方法 (自版本 2.0.6 起可用)

创建一个字符串列。

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

列大小定义,即最大字符串长度。如果 DBMS 不支持,则此参数将被忽略。

返回 yii\db\ColumnSchemaBuilder

可以进一步自定义的列实例。

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

            
text() 公共方法 (自版本 2.0.6 起可用)

创建一个文本列。

public yii\db\ColumnSchemaBuilder text ( )
返回 yii\db\ColumnSchemaBuilder

可以进一步自定义的列实例。

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

            
time() 公共方法 (自版本 2.0.6 起可用)

创建一个时间列。

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

列值精度。传递给列类型的第一个参数,例如 TIME(precision)。如果数据库管理系统不支持,则忽略此参数。

返回 yii\db\ColumnSchemaBuilder

可以进一步自定义的列实例。

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

            
timestamp() 公共方法 (自版本 2.0.6 起可用)

创建一个时间戳列。

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

列值精度。传递给列类型的第一个参数,例如 TIMESTAMP(precision)。如果 DBMS 不支持,则此参数将被忽略。

返回 yii\db\ColumnSchemaBuilder

可以进一步自定义的列实例。

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

            
tinyInteger() 公共方法 (自版本 2.0.14 起可用)

创建一个 tinyint 列。如果 DBMS 不支持 tinyint,则将使用 smallint。

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

列大小或精度定义。如果 DBMS 不支持,则此参数将被忽略。

返回 yii\db\ColumnSchemaBuilder

可以进一步自定义的列实例。

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