关于Yii2 model save方法的疑问

18-07-03 00:55 字数 529 阅读 3220 已编辑

我有一段代码大致是这样的

$model = new Notification();
if($type == 1) {
    $data = [];
    $data['aa'] = 1;
    $model->load($model, '') && $model->save();
}
if($count == 2) {
    $data = [];
    $data['bb'] = 2;
    $model->load($model, '') && $model->save();
}

这个时候$type = 1 , $count = 2 , 按照我的心里预期,应该是保存了两条数据,因为两条数据都符合条件,但是实际结果是只保存了最后一条数据。

如果想两条数据都保存,需要改成下面这样。

$model = new Notification();
if($type == 1) {
    $data = [];
    $data['aa'] = 1;
    $_model = clone $model;
    $_model->load($model, '') && $_model->save();
}
if($count == 2) {
    $data = [];
    $data['bb'] = 2;
    $_model = clone $model;
    $_model->load($model, '') && $_model->save();
}

不知道为什么。下次写类似这种逻辑需要注意下。

0人点赞>
关注 收藏 改进 举报
0 条评论
排序方式 时间 投票
快来抢占一楼吧
请登录后发表评论
站长 @ 十七度
文章
384
粉丝
23
喜欢
195
收藏
31
排名 : 1
访问 : 147.32万
私信