Пример #1
0
 public function actionForm()
 {
     //vd(1);
     $model = Profile::find()->where(['user_id' => Yii::$app->user->id])->one();
     if (!$model) {
         $model = new Profile();
     }
     if ($model->load(Yii::$app->request->post())) {
         //vd($_POST);
         if ($model->validate()) {
             $model->gender = $_POST['gender'];
             $model->user_id = Yii::$app->user->id;
             $model->login = User::getLoginById(Yii::$app->user->id);
             $model->save();
             return $this->render('form', ['model' => $model]);
         } else {
             vd($model->getErrors());
         }
     }
     return $this->render('form', ['model' => $model]);
 }
Пример #2
0
 /**
  * Save application form.
  *
  * @return Profile|null the saved model or null if saving fails
  */
 public function save()
 {
     if ($this->validate()) {
         $person = Person::findById($this->id_person);
         if (empty($person)) {
             $person = new Person();
         }
         if (trim($this->parent1_type) != '') {
             $parent1 = Person::findById($person->id_parent1);
             if (empty($parent1)) {
                 $parent1 = new Person();
             }
             $parent1->attributes = $this->getMyAttributes('parent1_');
             $parent1->save();
             $person->id_parent1 = $parent1->id;
         } else {
             $parent1 = Person::findById($person->id_parent1);
             if (!empty($parent1)) {
                 $parent1->delete();
             }
             $person->id_parent1 = null;
         }
         if (trim($this->parent2_type) != '') {
             $parent2 = Person::findById($person->id_parent2);
             if (empty($parent2)) {
                 $parent2 = new Person();
             }
             $parent2->attributes = $this->getMyAttributes('parent2_');
             $parent2->save();
             $person->id_parent2 = $parent2->id;
         } else {
             $parent2 = Person::findById($person->id_parent2);
             if (!empty($parent2)) {
                 $parent2->delete();
             }
             $person->id_parent2 = null;
         }
         $person->attributes = $this->attributes;
         if ($person->save()) {
             $this->id_person = $person->id;
             $profile = Profile::findById($this->id);
             if (empty($profile)) {
                 $profile = new Profile();
             }
             $profile->attributes = $this->attributes;
             $profile->id_person = $person->id;
             $profile->status = $this->status;
             if ($profile->validate()) {
                 $profile->save();
                 $this->id = $profile->id;
                 $specs = Yii::$app->request->post('spec');
                 $SpecArray = array();
                 $i = 0;
                 if (!empty($specs)) {
                     foreach ($specs as $id => $spec) {
                         if ($spec != 'none') {
                             $SpecArray[$i]['id_profile'] = $profile->id;
                             $SpecArray[$i]['id_spec'] = $id;
                             $spec == 'form_fulltime' ? $SpecArray[$i]['form_fulltime'] = 1 : ($SpecArray[$i]['form_fulltime'] = 0);
                             $spec == 'form_extramural' ? $SpecArray[$i]['form_extramural'] = 1 : ($SpecArray[$i]['form_extramural'] = 0);
                             $SpecArray[$i]['priority'] = $i + 1;
                             $i++;
                         }
                     }
                 }
                 Yii::$app->db->createCommand()->delete('profile_spec', 'id_profile=:id', [':id' => $profile->id])->execute();
                 if (!empty($SpecArray)) {
                     Yii::$app->db->createCommand()->batchInsert('profile_spec', ['id_profile', 'id_spec', 'form_fulltime', 'form_extramural', 'priority'], $SpecArray)->execute();
                 }
                 return true;
             } else {
                 return false;
             }
         }
     }
     return false;
 }