如何解决当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 举报,一经查实,本站将立刻删除。