예제 #1
0
 /**
  * @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;
 }