Yii2 redirect to previous page

Yii2

Yii2 Problem Overview


Now My application is using gridview to list all information and it's also have pagination.when the user click on pagination number and then click on edit and then save. It redirect user to view page. What I want to do it to redirect user to previous page(url with pagination number).

Yii2 Solutions


Solution 1 - Yii2

You could use Yii::$app->request->referrer which returns the last page the user was on.

Usage is straightforward:

return $this->redirect(Yii::$app->request->referrer);

You need also take into account that referrer can be null:

return $this->redirect(Yii::$app->request->referrer ?: Yii::$app->homeUrl);

See the docs.

Solution 2 - Yii2

Here it says that it's a good practice to check if referrer is set at the first place. So if you use the following code you will be redirected to last page if referrer is set or to your configured homeUrl if the return URL was not set previously.

return $this->goBack((!empty(Yii::$app->request->referrer) ? Yii::$app->request->referrer : null));

goBack() details

redirect details

Solution 3 - Yii2

It is true what @Kostas says, but I think it would be better if you simply code the following, because goBack take account of a null parameter already to goBack HOME.

return $this->goBack(Yii::$app->request->referrer);

I tested it and it works fine.

Solution 4 - Yii2

If you use Html::submitButton when you are in a form and you want to be redirected to the previous page, so mostly to your module list I recommend using use yii\helpers\Url;:

return $this->redirect(Url::previous('previous') ?: ['list']);

because

return $this->redirect(Yii::$app->request->referrer);

will return you back to the form instead of a module list.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionChhorn SoroView Question on Stackoverflow
Solution 1 - Yii2deacsView Answer on Stackoverflow
Solution 2 - Yii2Kostas MitsarakisView Answer on Stackoverflow
Solution 3 - Yii2daniroyoView Answer on Stackoverflow
Solution 4 - Yii2Paweł NowickiView Answer on Stackoverflow