Всплывающее окно

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Павелrr
Сообщения: 11
Зарегистрирован: 2019.02.16, 16:08

Всплывающее окно

Сообщение Павелrr »

Добрый день, проблема заключается в том, что я реализовал регистрацию на сайте, после регистрации пользователю уходит письмо с кодом подтверждения на адрес эл.почты и появляется всплывающее окно(boostrap), куда нужно этот код ввести. Вроде бы всё реализовал, но когда нажимаю по кнопке "Подтвердить" меня переадресовывает на основную страницу http://mysite/ObrasovatelniyPortal/SignIn, хотя всплывающее окно находится по ссылке http://mysite/ObrasovatelniyPortal/SignIn#kp. Помогите пожалуйста разобраться, прилагаю весь код:

js на открытие модального окна
$(document).ready(function() {
if (window.location.hash == "#kp") {
$('#myModalBox').modal('show');
}
});

код контроллера:

if(yii::$app->request->post('Signup'))
{
$model->attributes = Yii::$app->request->post('Signup');
if($model->validate()){
$chislo = rand(1000, 9999);
$cookies = Yii::$app->response->cookies;
$cookies->add(new \yii\web\Cookie([
'name' => 'kod',
'value' => $chislo,
]));
$text = "Добрый день, ваш код для подтверждения учетной записи на сайте:" . $chislo;
Yii::$app->mailer->compose()
->setFrom('[email protected]')
->setTo($model->email)
->setSubject('Код подтверждения')
->setTextBody($text)
->setHtmlBody($text)
->send();
$this->redirect(Yii::$app->urlManager->createUrl(['site/login']) . '#kp');
if(Yii::$app->request->post('Kod')){
$kp->attributes = Yii::$app->request->post('Kod');
if($kp->validate()){
$model->signup();
Yii::$app->user->login($model->getUser());
}
}
/*if ($model->valid() == true){
$model->signup();
Yii::$app->user->login($model->getUser());
}*/
}

код файла kod.php, где проверяю поле на валидность

<?php

namespace app\models;

use yii\base\Model;
use Yii;

class Kod extends Model{
public $kp;

public function rules(){
return[
['kp', 'valid']
];
}

public function valid($attribute, $params){
$cookies = Yii::$app->response->cookies;
if ($cookies->getValue('kod') != $this->kp){
$this->addError($attribute, 'Код подтвержения введён неверно');
}
}
}
Ответить