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

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

解决路径:

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

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


回答:

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


回答:

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

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


回答:

  1. controller 层用 request()->only() 只获取想要的字段
  2. 也可以结合 validate 进行验证
$validator = validator(request()->only('field'), [

'field' => 'require|string'

]);

if (!$validator->fails()) {

$params = $validator->validated();

}

以上是 laravel 如何确保只更新数据表结构中有的字段 的全部内容, 来源链接: utcz.com/p/938001.html

回到顶部