更新模型时如何过滤一些不必要的字段?

更新模型时如何过滤一些不必要的字段? 有没有什么优雅的办法?

用过request->only,但是好像有个问题,如果更新的数据里面没有这个字段的话,会默认赋null值,这样会导致本来不想更新这个值,但是被null值覆盖了。

也用过定义一个数组然后判断更新的字段是否在这个数组里面,总是感觉不太优雅。

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 6

试试 'array_only($request->all(), ['name', 'mobile']);'

9年前 评论

@zhuzhichao request 好像确实没提供类似的方法,这个是 laravel 的辅助函数?这个相对来说挺简单明了的,谢谢。

9年前 评论

@oustn 是辅助函数。挺好用的。

9年前 评论
// only 过滤
$request->only('name', 'mobile')

但是有没有类似 thinkPHP5 中,在模型中,使用 allowField 过滤的?

$user = new User();
// 过滤post数组中的非数据表字段数据
$user->allowField(true)->save($_POST,['id' => 1]);
7年前 评论
MuYan 6年前
RoRen_ 6年前

model里面加这个
protected $guarded = ['id'];

7年前 评论

使用 Eloquent Model + fillable 属性

5年前 评论
jiangxiulong 5年前

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