/** * Updates an existing Rule model. * If update is successful, the browser will be redirected to the 'view' page. * @param integer $id * @return mixed */ public function actionUpdate($id) { $model = $this->findModel($id); /* if ($model->load(Yii::$app->request->post()) && $model->save()) { return $this->redirect(['view', 'id' => $model->id]); } else { return $this->render('update', [ 'model' => $model, ]); } */ //echo('$id: ' . $id) . '<br/>' . PHP_EOL; $modelsRuleCondition = RuleCondition::findAll(['rule_id' => $id]); //$modelsRuleCondition = RuleCondition::find()->where(['rule_id' => $id])->asArray()->all(); //echo('count: ' . count($modelsRuleCondition)) . '<br/>' . PHP_EOL; for ($i = count($modelsRuleCondition); $i <= 9; $i++) { //echo('$i: ' . $i) . '<br/>' . PHP_EOL; $modelsRuleCondition[$i] = new RuleCondition(); $modelsRuleCondition[$i]->rule_id = $id; $modelsRuleCondition[$i]->value_value = Yii::t('app', '- None -'); $modelsRuleCondition[$i]->weight = $i; } $modelsRuleAction = RuleAction::findAll(['rule_id' => $id]); //echo('count: ' . count($modelsRuleAction)) . '<br/>' . PHP_EOL; for ($i = count($modelsRuleAction); $i <= 4; $i++) { $modelsRuleAction[$i] = new RuleAction(); $modelsRuleAction[$i]->rule_id = $id; $modelsRuleAction[$i]->value_value = Yii::t('app', '- None -'); $modelsRuleAction[$i]->weight = $i; } //var_dump($modelsRuleCondition); //var_dump($modelsRuleAction); //exit(); if ($model->load(Yii::$app->request->post()) && RuleCondition::loadMultiple($modelsRuleCondition, Yii::$app->request->post()) && RuleAction::loadMultiple($modelsRuleAction, Yii::$app->request->post())) { if ($model->validate() && RuleCondition::validateMultiple($modelsRuleCondition) && RuleAction::validateMultiple($modelsRuleAction)) { $model->save(false); // change the rule_id, and save foreach ($modelsRuleCondition as $modelRuleCondition) { if (Yii::t('app', '- None -') != $modelRuleCondition->value_value) { $modelRuleCondition->rule_id = $model->id; $modelRuleCondition->save(false); } else { $modelRuleCondition->delete(); } } // change the rule_id, and save foreach ($modelsRuleAction as $modelRuleAction) { if (Yii::t('app', '- None -') != $modelRuleAction->value_value) { $modelRuleAction->rule_id = $model->id; $modelRuleAction->save(false); } else { $modelRuleAction->delete(); } } return $this->redirect(['index']); } } return $this->render('update', ['model' => $model, 'modelsRuleCondition' => $modelsRuleCondition, 'modelsRuleAction' => $modelsRuleAction]); }