2015-02-17 6 views
21

Теперь мое приложение использует gridview для отображения всей информации, а также имеет разбиение на страницы. Когда пользователь нажимает номер страницы и затем нажимает на редактирование, а затем сохраняет. Он перенаправляет пользователя на просмотр страницы. Что я хочу сделать, чтобы перенаправить пользователя на предыдущую страницу (url с номером страницы).Yii2 перенаправление на предыдущую страницу

ответ

77

Вы можете использовать Yii::$app->request->referrer, который возвращает последнюю страницу, на которой был пользователь.

Использование прост:

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

Вы должны также принимать во внимание, что referrer может быть null:

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

См the docs.

+0

Второй пример может быть сокращен до 'вернуть $ this-> перенаправлять (Yii :: $ app-> request-> ссылающаяся: Yii :: $ app-> homeUrl); ' – cronfy

6

Here В нем говорится, что это хорошая практика, чтобы проверить, установлено ли на первом месте referrer. Итак, если вы используете следующий код, вы будете перенаправлены на последнюю страницу, если настроен реферер, или ваш сконфигурированный homeUrl, если URL-адрес возврата не был установлен ранее.

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

goBack() details

redirect details