/** * Создать пользователя * Если пользователь будет создан, то сработает редирект на 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]); }
/** * @return \yii\db\ActiveQuery */ public function getPerson() { return $this->hasOne(LegalPerson::className(), ['user_id' => 'id']); }