当DB设为`-> nullable和`-> defaultnull`

问题描述

我在Homestead Vagrant盒上使用Laravel 5.1,在Ubuntu 18.04上使用MysqL 5.7.25的PHP 7.2.14。

我以此创建了迁移:

$table->date('expiry_date')->nullable()->default(null);

我有一个表单,其日期字段称为expiry_date认设置为null:

{!! Form::date('expiry_date',null,array('class' => 'form-control')) !!}

当我在字段中输入日期时,一切正常,但是当我将其保留为空白时,会将0000-00-00插入数据库,这会弄乱我视图中的显示。我能够修复它的唯一方法是将其添加到模型中:

public function setExpiryDateAttribute($value)
{
    $this->attributes['expiry_date'] = $value ?: null;
}

我很烦我必须要做这个额外的步骤,而且感觉不太“ Laravel”,这使我相信自己缺少了一些东西。

有趣的是,它在我的自定义请求中通过了验证:

'expiry_date' => 'date',

编辑:

我在模型中设置了protected $dates ['expiry_date'],并且它也已添加到批量分配中。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)