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

很简单的东西,说了一大堆,,,大家别笑话~~

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 3

比较笨的方法就是$name = $request->get('name', '');// 设置默认空

6年前 评论

@LiXunGuan 我现在暂时是更新模型前,用describe 'table_name'查询出表的列信息,里面有创建表时,设置的默认值,,然后循环设置那些没有的值的默认值,,,

6年前 评论

在model里面使用setAttribute方法吧, 如果为null的话给一个默认值.

6年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!