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

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

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

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

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 6

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

7年前 评论

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

7年前 评论

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

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

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

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

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

5年前 评论

使用 Eloquent Model + fillable 属性

4年前 评论
jiangxiulong 3年前

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