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

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

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

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

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 6

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

8年前 评论

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

8年前 评论

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

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

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

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

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

6年前 评论

使用 Eloquent Model + fillable 属性

5年前 评论
jiangxiulong 4年前

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