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) 列并添加一个约束,以便它只允许指定的字符串。