【问题标题】:Set default to NULL with laravel migration使用 laravel 迁移将默认设置为 NULL
【发布时间】:2015-02-17 22:57:24
【问题描述】:

我正在向迁移中的表添加一个字段,我希望允许它为 NULL,但我也希望它默认为 NULL。我在默认方法中放置了什么?我担心将"NULL" 放入会尝试放入我显然不想要的NULL 字符串。请帮忙:)

Schema::table('item_categories', function(Blueprint $table)
{
    $table->integer('parent_item_category_id')->unsigned()->nullable()->default($what_to_put here);
});

【问题讨论】:

标签: laravel


【解决方案1】:

当您对字段使用nullable() 方法时,该字段将默认为NULL。

$table->integer('parent_item_category_id')->nullable();

【讨论】:

  • 如果一个字段之前有默认值,我尝试应用迁移,删除默认值并添加“可空”方法,然后“更改”,它不起作用。保留第一次迁移的默认值。只是“NOT NULL”定义被删除。 (使用 MySQL。)
  • “当你对一个字段使用 nullable() 方法时,该字段将默认为 NULL。”当启用严格的 DB 模式并且您使用时间戳时,Laravel 5.3 似乎不再适用。您必须将默认值显式设置为 null。
  • 为例:$table->string('email')->nullable();
  • 确实正如@JānisElmeris 所说,这不适用于更改。我必须添加一个带有语句的 DB::statement() 来更改默认值以使其正常工作。
  • 是否可以为空,后跟默认冗余?它应该只是默认吗?例如:$table->boolean('share_location')->nullable()->default(0);$table->boolean('share_location')->default(0);
猜你喜欢
  • 1970-01-01
  • 2018-11-23
  • 2014-01-16
  • 2020-04-20
  • 2021-11-26
  • 2016-10-06
  • 1970-01-01
  • 2016-09-05
  • 1970-01-01
相关资源
最近更新 更多