在可空字段中的日期时间可以为空的字段store 0000-00-00 00:00:00,

时间:2018-05-08 04:14:38

标签: laravel-5.5 laravel-5.6

我正在使用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

请建议

1 个答案:

答案 0 :(得分:0)

有一件事是肯定的。默认情况下,datetime输入0000-00-00 00:00:00,因为这是datetime字段的默认值。您可以尝试的一件事是从迁移中删除'default->(null)'。 只是为了确保一切正常,首先尝试控制器,不做任何改动。如果失败,请尝试:     $ MyModel-> End_Date ='0'; 看看是否有效。

最后,确保您的模型中提到的所有字段均为$ fillable = []。

希望这会有所帮助:)