在使用yii2開發項目時,有時候會遇到這樣的情況:
向后臺發送多條數據,其中一些數據已經存在記錄,只需要對其部分字段的值進行修改;而另一部分的數據則需要新添加進去.
這就需要對添加的數據進行判斷,其中一些執行update,剩下的執行insert
代碼如下,不對的地方請指教:
//批量更新,并將需要批量插入的數據放入數組中 foreach($goods as $k => $v) { if(yourModel::updateAllCounters( ['goods_num' => $v], ['goods_id' => $k,'user_id' => $id] )) { continue;//如果已經更新,則跳過此次循環,到下一次 } $data[] = [ 'user_id' => $id, 'goods_id' => $k, 'goods_num' => $v, 'created_time' => $time, ] } //再執行批量插入 if (isset($data)) { Yii::$app->db->createCommand() ->batchInsert(yourModel::tableName(),['user_id','goods_id','goods_num','created_time'], $data) ->execute(); }
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持。
【網站聲明】本站除付費源碼經過測試外,其他素材未做測試,不保證完整性,網站上部分源碼僅限學習交流,請勿用于商業用途。如損害你的權益請聯系客服QQ:2655101040 給予處理,謝謝支持。