/**
  * Создать пользователя
  * Если пользователь будет создан, то сработает редирект на index
  * @return array|string|Response
  * @throws ForbiddenHttpException
  */
 public function actionCreate()
 {
     if (!Yii::$app->user->can('user-create')) {
         throw new ForbiddenHttpException(Yii::t('users.rbac', 'ACCESS_DENIED'));
     }
     $user = new models\backend\User(['scenario' => 'create']);
     $profile = new models\backend\Profile(['scenario' => 'create']);
     $person = new models\backend\LegalPerson(['scenario' => 'create']);
     if (Yii::$app->request->isPost) {
         $user->load(Yii::$app->request->post());
         $profile->load(Yii::$app->request->post());
         $person->load(Yii::$app->request->post());
         if (!ActiveForm::validateMultiple([$user, $profile, $person])) {
             $user->populateRelation('profile', $profile);
             $user->populateRelation('person', $person);
             if ($user->save(false)) {
                 Yii::$app->session->setFlash('success', Yii::t('users', 'SUCCESS_UPDATE'));
                 return $this->redirect(['index']);
             } else {
                 Yii::$app->session->setFlash('danger', Yii::t('users', 'FAIL_UPDATE'));
             }
             return $this->refresh();
         } else {
             if (Yii::$app->request->isAjax) {
                 Yii::$app->response->format = Response::FORMAT_JSON;
                 return ActiveForm::validateMultiple([$user, $profile, $person]);
             }
         }
     }
     return $this->render('create', ['user' => $user, 'profile' => $profile, 'person' => $person]);
 }
Esempio n. 2
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getPerson()
 {
     return $this->hasOne(LegalPerson::className(), ['user_id' => 'id']);
 }