/** * Update the current Communal's model * * @param int $id * @return string|\yii\web\Response * @throws ForbiddenHttpException * @throws NotFoundHttpException */ public function actionUpdate($id) { /** @var Estate $estate */ $estate = $this->findEstate($id); if (!LinkCounter::initialized($estate->id)) { $this->initializeEstate($estate->id); } $links = LinkCounter::getLinksByEstateId($estate->id); $model = new CounterList(); foreach ($links as $link) { array_push($model->counters, $link); // Full array with counter list from Estate } if ($post = Yii::$app->request->post()) { foreach ($post["Counters"] as $key => $item) { foreach ($model->counters as $counter) { if ($counter->id == $key) { /** @var LinkCounter $linkModify */ $linkModify = LinkCounter::findOne($key); $linkModify->setAccount((int) $item); $linkModify->save(); Yii::$app->session->setFlash('success', Yii::t('app', 'FLASH_COMMUNAL_ACCOUNT_UPDATED')); } } } return $this->redirect(['view', 'id' => $estate->id]); } else { return $this->render('update', ['model' => $model, 'estate' => $estate]); } }