在架构构建器中为枚举类型字段添加默认值

Pet*_*ter 7 mysql enums database-schema laravel laravel-4

我正在使用以下方法ENUM在架构生成器中创建类型的数据库列:

$table->enum('status', array('new', 'active', 'disabled'));
Run Code Online (Sandbox Code Playgroud)

我想将它的默认值设置为active.
我试着这样做:

$table->enum('status', array('new', 'active', 'disabled'))->default('active');
Run Code Online (Sandbox Code Playgroud)

但是你可以猜测它没有设置它的默认值.我正在使用MySQL数据库,如果这很重要的话.

Joe*_*inz 14

MySQL手册:

如果声明ENUM列允许NULL,则NULL值是列的合法值,默认值为NULL.如果ENUM列声明为NOT NULL,则其默认值是允许值列表的第一个元素.

我假设这意味着你应该设置'active'为第一个值,删除default()呼叫,并可能NULL手动设置允许值.


Alm*_*ody 8

用这个 :

$table->enum('status',['new', 'active', 'disabled'])->default('active');
Run Code Online (Sandbox Code Playgroud)