我正在使用Laravel 5.6.12和MySQL
架构迁移代码
Schema::create('mytable', function (Blueprint $table) {
$table->unsignedMediumInteger('ID')->autoIncrement();
$table->datetime("Start_Date");
$table->datetime("End_Date")->nullable()->default(null);
$table->timestamps();
});
插入脚本
$MyModel = new MyModel();
$MyModel->Start_Date = \Carbon\Carbon::now();
$MyModel->End_Date = null;
$MyModel->save();
我也在数据库中获得了End_Date字段的00:00:00。我期待它存储null而不是00:00:00
请建议
答案 0 :(得分:0)
有一件事是肯定的。默认情况下,datetime输入0000-00-00 00:00:00,因为这是datetime字段的默认值。您可以尝试的一件事是从迁移中删除'default->(null)'。 只是为了确保一切正常,首先尝试控制器,不做任何改动。如果失败,请尝试: $ MyModel-> End_Date ='0'; 看看是否有效。
最后,确保您的模型中提到的所有字段均为$ fillable = []。
希望这会有所帮助:)