select('id, attr, virtual_sales, price, goods_num')->where([ 'store_id' => $this->store_id, 'is_delete' => 0, ])->asArray()->all(); foreach ($this->ids as $id) { $md = Md::findOne($id); if (!$md) { continue; } $delivery_type = $md->self_delivery_type; foreach ($goods as $value) { $md_goods = MdGoods::findOne([ 'md_id' => $id, 'goods_id' => $value['id'] ]); if (!$md_goods) { $md_goods = new MdGoods(); $md_goods->md_id = $id; $md_goods->goods_id = $value['id']; } $md_goods->status = 0; $md_goods->virtual_sales = $value['virtual_sales']; $md_goods->attr = $value['attr']; $md_goods->goods_num = $value['goods_num']; $md_goods->price = $value['price']; $md_goods->delivery_type = $delivery_type; $md_goods->save(); } } } }