dart_kinselok
@dart_kinselok
Правильный вопрос содержит 50% искомого ответа...

Не меняется url при возврате action в Yii2?

Ребята, нужен хелпец. Есть задача: двухэтапная регистрация с верификацией и использованием Active Form. Не суть, что да как там работает, по отдельности работает. Проблема заключается в следующем: когда я верифицирую данные с первой страницы и прописываю
if ($model->load(Yii::$app->request->post())) {
            if ($model->validate()) { 
                     return $this->actionSecond($model);
            }
        }

что проверяет на валидность форму и, в случае правильного заполнения, перенаправляет на actionSecond-контроллер да и URL должен превращает, теоретически, из изначального /index в /second... Сама ф-ция actionSecond() ничего сверхособенного не возвращает, верифицирует, в свою очередь, свою форму, рендерит вьюшку и передает данные
// ...

if ($model->load(Yii::$app->request->post())) {
            if ($model->validate()) { 
                return $this->actionFinish();
            }
        }

return $this->render('view', [
               'data' => $data,
           ])
// ...

В силу того обстоятельства, что route не меняется (в консоли тоже висит все тот же грустный /index), то и верификация происходит через обработчик actionIndex'a, а т.к. она "не верифицируется", то меня тупо перенаправляет обратно, на /index и я тупо застреваю в этом цикле, вообще не имея никакой возможности добраться до actionFinish-контроллера

Взываю к вашей помощи:)
  • Вопрос задан
  • 238 просмотров
Пригласить эксперта
Ответы на вопрос 1
artem90
@artem90
TeamLead, Developer
1. Чтобы сменился route надо возвращать не actionSecond и т.п. А
$this->redirect("/my/controller/second")
2. Либо забить на смену route и добавить в форму проверку на этап, ввиде hidden поля и т.п. И проверять в index это значение и раздавать в нужные action
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы