public function updateDcStatus() { // get all dc equipment of this station $dcEquips = DcEquipmentStatus::findAll(['station_id' => $this->request['id']]); if (!empty($dcEquips)) { foreach ($dcEquips as $equip) { $value = []; // if this is dc 1 if ($equip['equipment_id'] == DcEquipment::ID_DC1) { $value = ['voltage' => $this->request['dc1_voltage'], 'amperage' => $this->request['dc1_ampe']]; } // if this is dc 2 if ($equip['equipment_id'] == DcEquipment::ID_DC2) { $value = ['voltage' => $this->request['dc2_voltage'], 'amperage' => $this->request['dc2_ampe']]; } Yii::$app->db->createCommand()->update('dc_equipment_status', $value, ['id' => $equip['id']])->execute(); } } }
private function setDcEquipment($ids, $model) { if (!empty($ids) && $model->id > 0) { // delete excess equipment $excessIds = array_diff($model->dc_equip_ids, $ids); if (!empty($excessIds)) { foreach ($excessIds as $excessId) { DcEquipmentStatus::deleteAll(['equipment_id' => $excessId, 'station_id' => $model->id]); } } // add new equipment $newIds = array_diff($ids, $model->dc_equip_ids); if (!empty($newIds)) { foreach ($newIds as $newId) { $data[] = [$newId, $model->id]; } Yii::$app->db->createCommand()->batchInsert('dc_equipment_status', ['equipment_id', 'station_id'], $data)->execute(); } } }