@lamar
Для того чтобы сделать редирект после отправки формы на Yii2, необходимо использовать метод returnUrl()
в контроллере.
Пример:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
public function actionContact() { $model = new ContactForm(); if ($model->load(Yii::$app->request->post()) && $model->contact(Yii::$app->params['adminEmail'])) { Yii::$app->session->setFlash('success', 'Thank you for contacting us. We will respond to you as soon as possible.'); // редирект на страницу "success" return $this->redirect(['site/success']); } return $this->render('contact', [ 'model' => $model, ]); } |
В данном примере, если форма успешно отправлена, то происходит редирект на страницу "success". Адрес этой страницы задается в параметре ['site/success']
.
Также можно использовать абсолютный адрес для редиректа:
1
|
return $this->redirect('https://example.com/'); |
Обратите внимание, что редирект должен производиться только после успешной отправки формы. Для этого проверяется результат метода $model->contact()
. Если он вернул true
, то форма успешно отправлена. Если в форме есть ошибки валидации или произошла ошибка при отправке письма, метод вернет false
.