Задать вопрос
@djienbaev97

Как настроить свой signup в yii2?

Я пишу свой код для входа и регистрации в yii2, со входом у меня все нормально работает, раньше я через админку людей добавлял, щас надо было сделать регистрацию открытим, и при регистрации в базу добавляются но не получается валидацию сделать или как это называется, после добавление в базу надо сразу автоматический авторизацию сделать как в стандартном signup yii2.

Моя форма регистрации:
<div class="forma">
                    <?php $form = ActiveForm::begin(['id' => 'form-signup', 'action'=>'/site/signup2']); ?>

                    <?= $form->field($model, 'username')->textInput(['autofocus' => true, 'name'=>'username', 'placeholder' => 'Номер'])->label(false) ?>

                    <?= $form->field($model, 'fio')->textInput(['autofocus' => true, 'name'=>'fio', 'placeholder'=>'Аты-жөні'])->label(false) ?>

                    <?= $form->field($model, 'password')->passwordInput(['placeholder' => 'Құпия сөз', 'name'=>'password',])->label(false) ?>

                    <div class="form-group">
                        <?= Html::submitButton('Тіркеу', ['class' => 'btn btn-vxod', 'name' => 'signup-button']) ?>
                    </div>

                    <?php ActiveForm::end(); ?>
                </div>


код контроллера:
public function actionSignup2()
    {
        $username = $_POST['username'];
        $fio = $_POST['fio'];
        $password = $_POST['password'];
            $model = new User();
            $model->username = $username;
            $model->fio = $fio;
            $model->password = $password;
            if($model->save(false)){
                $model = new SignupForm();
                $model->username = $username;
                $model->fio = $fio;
                $model->password = $password;
                if($model->signup()){
                    return $this->redirect(['index']);
                }
            }
    }


как тут в контроллере запустить после сохранения автоматическую авторизацию?
  • Вопрос задан
  • 238 просмотров
Подписаться 1 Простой 4 комментария
Пригласить эксперта
Ответы на вопрос 1
@vk13s
public function actionSignup()
    {
        $model = new SignupForm();
        if ($model->load(Yii::$app->request->post())) {
            if ($user = $model->signup()) {
                if (Yii::$app->user->login($user)) {
                    return $this->redirect(['index']);
                }
            }
        }
        return $this->render('signup', compact('model'));
    }
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы