Laravel 用模型更新一条记录时,如果方便的处理该字段的默认值?
场景是这样的,
一个user表,其中有一个字段为name,默认值为'',且不能为null。
好了,通过表单创建一条user记录的时候,由于name是选填的,所以没有填,后台接收到'name' => null,如果直接存入表中,会提示name列不能为null,所以就做了如下处理:把值为null的全部unset掉,例如unset($data['name']),这样表中就会默认用''填充了。
现在假设创建记录时,填了个值largezhou,之后编辑的时候,在表单中删掉了,如果继续用上面的处理null值的方法,那么没有更新到这个name字段了,,如果这种非必填,但是又不能为null的很少,可以就简单的$name = $request->get('name', '')这样处理,但是现在这种字段很多,而且默认值类型和值都不尽相同,,,,
有什么通用的方法吗?暂时想到一个就是更新前,用SQL查询模型对应的表的信息,里面有各字段的默认值情况,然后对应判断并设置,,或者一个模型实例里面,有各字段的默认值吗?或者那些非必填字段,应该设置成nullable?
很简单的东西,说了一大堆,,,大家别笑话~~
关于 LearnKu
推荐文章: