/** * @param $code * @param $translations * @param $model * @return int */ private function setTranslations($code, $translations, $model) { $field_code = strtolower($model) . '_code'; $model = 'common\\models\\Received' . $model . 'Translation'; foreach ($translations as $key => $name) { $language = ReceivedLanguage::find()->where(['code' => $key])->one(); if (!$language) { $language = new ReceivedLanguage(); $language->code = $key; if (!$language->save()) { print_r($key); print_r($language->errors); return Controller::EXIT_CODE_ERROR; } } if ($name) { /** @var ActiveRecord $model */ $translation = $model::find()->where(['language_id' => $language->id, $field_code => $code])->one(); if (!$translation) { $translation = new $model(); $translation->language_id = $language->id; $translation->{$field_code} = $code; $translation->name = $name; /** @var ActiveRecord $translation */ if (!$translation->save()) { print_r($translation->attributes); print_r($translation->errors); return Controller::EXIT_CODE_ERROR; } } } } return Controller::EXIT_CODE_NORMAL; }