laravel 如何确保只更新数据表结构中有的字段

发布于 2022-09-13 00:22:10 字数 395 浏览 22 评论 0

问题:最新在做项目中,需要更新数据,但是有时候前端或者一些form会提交数据表中没有的字段,如果直接交给Orm,会直接报错,说某字段不存在

解决路径:

  1. 在Model层添加字段白名单$fillable
  2. 在Update之前重新组装数组,保障都是数据表中有的字段,例如
    图片.png
    3.每次更新前,获取表中的结果,与给到的更新数组进行对比,取出来交集,然后再去更新,例如
    图片.png

问题: 有没有更加简单有效的方式处理这个问题,问题应该不是交给Model,如何在request的时候就直接进行过滤呢?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

梦旅人picnic 2022-09-20 00:22:10

我觉得一个一个字段指定为好, 不要搞什么按前端传来的数据设字段.
这是风险的来源.

梦行七里 2022-09-20 00:22:10

https://my.oschina.net/u/4025...

mode 对应数据库的字段,然后前端参数属性对比赋值

决绝 2022-09-20 00:22:10
  1. controller 层用 request()->only() 只获取想要的字段
  2. 也可以结合 validate 进行验证
$validator = validator(request()->only('field'), [
    'field' => 'require|string'
]);

if (!$validator->fails()) {
    $params = $validator->validated();
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文