updateAll 是 bug 还是我用的不对?请大佬们指点答疑 [ 2.0 版本 ]
$model = new ShopConsignee();
if ($model->load(Yii::$app->request->post()) && $model->save()) {
ShopConsignee::updateAll(['isdefualt' => 0], ['user_id' => Yii::$app->user->id]);
$model->isdefualt = 1;
$model->save();
return $this->goBack();
}
上面代码的功能是将新增的收货地址设为默认,大佬给看看,这段代码是不是有问题?现在出现的问题是:第一次的添加是没法设成默认的,以后添加的都可以
public function actionResetDefaultConsignee()
{
$consignee_id = Yii::$app->request->post('consignee_id');
$consignee = ShopConsignee::findOne($consignee_id);
if ($consignee) {
ShopConsignee::updateAll(['isdefualt' => 0], ['isdefualt' => 1, 'user_id'=>Yii::$app->user->id]);
$consignee->isdefualt = 1;
}
$this->O($consignee->save());
}
上面这段代码是通过ajax设置默认地址的,情况是点两次的话isdefualt会被置为0,感觉跟上面是同样的原因引起的,请大佬也给讲解下
涛哥 补充于 2020-07-13 15:39
共 2 个回答
-
$model = new ShopConsignee(); $model->isdefualt = 1;//或者设置isdefualt默认1 if ($model->load(Yii::$app->request->post()) && $model->save()) { ShopConsignee::updateAll(['isdefualt' => 0], ['user_id' => Yii::$app->user->id,['!=', 'id', $model->id]]); return $this->goBack(); }
共 1 条回复windhoney 觉得很赞
涛哥
注册时间:2014-12-28
最后登录:2021-09-19
在线时长:28小时25分
最后登录:2021-09-19
在线时长:28小时25分
- 粉丝2
- 金钱125
- 威望20
- 积分605