谁一开始就是大神?

数据更新问题

因为才接触Yii,不是很清楚。
现在是这样,已经写好一个商铺(Store)的update方法了。
然后有一个按钮是开启、关闭商铺 即更改status字段。
那我是不是也调用update方法呢,但是如果被恶意或则无意多传入一些store表中比较重要的字段也会跟着
更新,我认为不是我想要的结果 。
我只想只更新我需要的参数,而不是更新调用者传递的所有参数 。
这样是不是要另开一个方法,然后给model赋值?
如果这个接口是更改多个属性,我是不是就要每一个都赋值一次?
感觉有点麻烦,希望有好的解决方案。

unset掉不更新的字段
使用场景,在指定场景只允许更新指定数据。
具体教程网上较多,本站也有很多,请自行查阅。
比如:http://www.imooc.com/article/13668
在提前数据前做一个validator验证 或者写一个rule验证 过滤不必要的参数 如果提交的字段对应数据表 可以使用load 不然 要挨个赋值 也可以将获取的值 取到同一个数组中 将数据组添加到数据表中
你可以尝试使用updateAll()方法,如要
更新store表的status字段,可以参考如下写法:
$param = ‘要更改的值’;
$id = ‘对应的字段id’;
Store::updateAll([‘status’ => $param], ‘id’ => $id);
这时就只修改status的值了,一般用0,1表示开关功能

赞(0) 打赏
未经允许不得转载:菜鸟之家 » 数据更新问题

评论 抢沙发

登录

找回密码

注册