laravel 如何确保只更新数据表结构中有的字段
问题:最新在做项目中,需要更新数据,但是有时候前端或者一些form会提交数据表中没有的字段,如果直接交给Orm,会直接报错,说某字段不存在
解决路径:
- 在Model层添加字段白名单$fillable
- 在Update之前重新组装数组,保障都是数据表中有的字段,例如
3.每次更新前,获取表中的结果,与给到的更新数组进行对比,取出来交集,然后再去更新,例如
问题: 有没有更加简单有效的方式处理这个问题,问题应该不是交给Model,如何在request的时候就直接进行过滤呢?
回答:
我觉得一个一个字段指定为好, 不要搞什么按前端传来的数据设字段.
这是风险的来源.
回答:
https://my.oschina.net/u/4025...
mode 对应数据库的字段,然后前端参数属性对比赋值
回答:
- 在
controller
层用request()->only()
只获取想要的字段 - 也可以结合 validate 进行验证
$validator = validator(request()->only('field'), [ 'field' => 'require|string'
]);
if (!$validator->fails()) {
$params = $validator->validated();
}
以上是 laravel 如何确保只更新数据表结构中有的字段 的全部内容, 来源链接: utcz.com/p/938001.html