/** * Creates a new LanguageData model. * If creation is successful, the browser will be redirected to the 'view' page. * @return mixed */ public function actionCreate($language_id) { $username = Yii::$app->user->identity->username; $model = new LanguageData(); $model->language_id = $language_id; $this->language_id = $model->language_id; if (Yii::$app->request->isPost && ($model = LanguageData::create(Yii::$app->request->post()))) { return $this->redirect(['update', 'id' => $model->id]); } else { return $this->render('create', ['username' => $username, 'model' => $model]); } }
/** * Updates an existing Language model. * If update is successful, the browser will be redirected to the 'view' page. * @param integer $id * @return mixed */ public function actionUpdate($id) { $username = Yii::$app->user->identity->username; if ($model = $this->findModel($id)) { $this->language_id = $model->id; if (Yii::$app->request->isPost && $model->update2(Yii::$app->request->post())) { foreach (LanguageData::findAll(['language_id' => $model->id]) as $item) { if (!in_array($item->key, I18n::$language_keys)) { $item->delete(); } } $default = Language::getDefault(); foreach (I18n::$language_keys as $key) { if (!LanguageData::findOne(['language_id' => $model->id, 'key' => $key])) { if ($default_item = LanguageData::findOne(['language_id' => $default->id, 'key' => $key])) { $value = $default_item->value; } else { $value = $key; } LanguageData::create(['LanguageData' => ['language_id' => $model->id, 'key' => $key, 'value' => $value]]); } } return $this->goBack(Url::previous()); } else { return $this->render('update', ['username' => $username, 'model' => $model]); } } else { throw new NotFoundHttpException(); } }