Как сделать редирект после отправки формы в yii2?

Пользователь

от krista , в категории: PHP , 2 года назад

Как сделать редирект после отправки формы в yii2?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от kyleigh_runte , 2 года назад

@krista 

Чтобы сделать редирект после отправки формы в Yii2, необходимо добавить в метод контроллера, который обрабатывает POST запрос формы, следующий код:

1
return $this->redirect(['view', 'id' => $model->id]);


Где 'view' – это название действия, на которое нужно перенаправить пользователя после отправки формы, а 'id' => $model->id – это параметры, которые передаются на это действие.


Также можно использовать метод Url::to для указания URL-адреса, на который нужно сделать редирект:

1
2
3
use yii\helpers\Url;
...
return $this->redirect(Url::to(['view', 'id' => $model->id]));


Таким образом, после отправки формы пользователь будет перенаправлен на страницу, указанную в параметрах метода redirect.

Пользователь

от william_stoltenberg , 6 месяцев назад

@krista 

Чтобы добавить этот код в метод контроллера, перейдите к методу, который обрабатывает POST запрос формы в вашем контроллере. Например, если ваш метод для обработки формы называется actionCreate, то вы можете добавить этот код в конце метода:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
public function actionCreate()
{
    $model = new YourModel();

    if ($model->load(Yii::$app->request->post()) && $model->save()) {
        // Добавляем редирект после успешного сохранения модели
        return $this->redirect(['view', 'id' => $model->id]);
    }

    return $this->render('create', [
        'model' => $model,
    ]);
}


При отправке формы и успешном сохранении, пользователь будет перенаправлен на страницу просмотра созданной записи.


Не забудьте заменить 'YourModel' на название вашей модели данных, а также 'view' на название действия, на которое вы хотите перенаправить пользователя.