Задать вопрос
@frmax
человек

Yii2 — Проблема с регистрацией?

Привет, всем проблема с регистрацией. Тут же провряю валидацию (это вроде норм работает)

Отправляю Ajaxом
var singup = (function () { 
    var name = $("#name").val();
    var lastName = $("#last-name").val();
    var psw = $("#pwd").val();
    var email = $("#mail").val();
    if(validName(name) && validLastName(lastName) && validEmail(email) && validPsw(psw)){
        $.ajax({
            type: 'POST',
            url: "site/singup",
            data: {"name": name, "lastname": lastName, "psw":psw, 'login':email},
            dataType: "json",
            success: function(data){
                if (data.success == true){
                    window.location.href = data.redirect_uri;
                } else $(".r-f-pp-l .p-att").html(data.msg).addClass('error-msg');
            },
            error: function(e) {
                alert('Error');
//                alert(e);
            }
          });
    }
});


Приходит в контроллер и тут вот и не понятность возникает то добавляет то ошибку выбрасывает %)
public function actionSingup()
    {
         if (Yii::$app->request->isAjax) {
            $name = Yii::$app->request->post('name');
            $lastname = Yii::$app->request->post('lastname');
            $psw = Yii::$app->request->post('password');
            $email = Yii::$app->request->post('login');
            
            if(User::find()->where(array('email'=>Yii::$app->request->post('login')))->asArray()->one()){
                return json_encode(array("success" => false, "msg"=>"Такой емайл уже загерестрирован"));
            }  else {
                $user = new User();
                $user->username = $name;
                $user->lastname = $lastname;
                $user->email = $email;
                $user->setPassword($psw);
                $user->status = User::STATUS_ACTIVE;
                $user->generateAuthKey();
                $user->generateEmailConfirmToken();
                if ($user->save()) {
                    Yii::$app->mailer->compose('confirmEmail', ['user' => $user])
                    ->setFrom([Yii::$app->params['supportEmail'] => Yii::$app->name])
                    ->setTo($this->email)
                    ->setSubject('Email confirmation for ' . Yii::$app->name)
                    ->send();   
                    return json_encode(array("success" => true, "redirect_uri" => '/'));    
                }else{
                    return json_encode(array("success" => false, "msg" => 'Исправьте ошибки.'));                    
                }
            }
         }
    }

Подскажите где ошибка
  • Вопрос задан
  • 2539 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
abler98
@abler98
Software Engineer
Зачем здесь asArray()?
User::find()->where(array('email'=>Yii::$app->request->post('login')))->asArray()->one()
Ответ написан
Комментировать
@frmax Автор вопроса
человек
А ну да) можно просто объект
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
Rocket Смоленск
от 80 000 до 130 000 ₽
div. Ставрополь
от 40 000 до 90 000 ₽
Wanted. Санкт-Петербург
До 220 000 ₽