Laravel 5.3 Schema::create ENUM 字段是 VARCHAR
Laravel 5.3 Schema::create ENUM field is VARCHAR
我刚刚创建了新的迁移。在 运行 之后,我看到我的字段 type
不是 ENUM 类型 。它有一个 VARCHAR(255) 类型而不是
Schema::create('payments', function (Blueprint $table) {
$table->increments('id');
$table->text('response');
$table->enum('type', ['apple', 'paypal']);
$table->smallInteger('flags');
$table->timestamps();
});
谁能告诉我是什么原因。我是否遗漏了什么,我尝试了多次 - 得到的结果相同。
我正在使用 PostgreSQL 9.5.4
来自Laravelsource code
protected function typeEnum(Fluent $column)
{
$allowed = array_map(function ($a) {
return "'{$a}'";
}, $column->allowed);
return "varchar(255) check (\"{$column->name}\" in (".implode(', ', $allowed).'))';
}
它将创建一个 varchar(255)
列并添加一个约束,以便它只允许指定的字符串。
我刚刚创建了新的迁移。在 运行 之后,我看到我的字段 type
不是 ENUM 类型 。它有一个 VARCHAR(255) 类型而不是
Schema::create('payments', function (Blueprint $table) {
$table->increments('id');
$table->text('response');
$table->enum('type', ['apple', 'paypal']);
$table->smallInteger('flags');
$table->timestamps();
});
谁能告诉我是什么原因。我是否遗漏了什么,我尝试了多次 - 得到的结果相同。
我正在使用 PostgreSQL 9.5.4
来自Laravelsource code
protected function typeEnum(Fluent $column)
{
$allowed = array_map(function ($a) {
return "'{$a}'";
}, $column->allowed);
return "varchar(255) check (\"{$column->name}\" in (".implode(', ', $allowed).'))';
}
它将创建一个 varchar(255)
列并添加一个约束,以便它只允许指定的字符串。