首页 > 解决方案 > 在 Laravel 上为可为空的日期列设置自定义默认日期

问题描述

我想在可为空的日期字段上设置默认日期 1900-01-01。

我试过这个

$table->date('fecha_nacimiento')->nullable()
    ->default(\Carbon\Carbon::make('1900-01-01')->toDateTimeString());

$table->date('fecha_nacimiento')->nullable()
    ->default(\Carbon\Carbon::make('1900-01-01'));

$table->date('fecha_nacimiento')->nullable()->default('1900-01-01');

当我在未设置 HTML 日期输入的情况下从浏览器保存时,它将日期字段保存为null.

标签: datelaravel-5migrationdefaultnullable

解决方案


该字段的默认值仅适用于未分配任何值(甚至不是 null)时。

空白值很可能来自表单的空白输入。此外,如果您正在使用像这样雄辩的质量分配,

$model->fill($request->all());

在这种情况下,您的日期字段设置为 null 并且您的插入语句将如下所示,

INSERT INTO table_name (fecha_nacimiento, ...)
VALUES (null, ...);

推荐阅读