2015-02-17 14 views
21

Teraz moja aplikacja używa widoku siatki do wyświetlenia wszystkich informacji, a także do stronicowania. Gdy użytkownik kliknie numer paginacji, a następnie kliknij przycisk edytuj, a następnie zapisz. Przekierowuje użytkownika do strony przeglądania. Co chcę zrobić, aby przekierować użytkownika do poprzedniej strony (URL z numerem paginacji).Przekierowanie Yii2 na poprzednią stronę

Odpowiedz

77

Można użyć Yii::$app->request->referrer, która zwraca ostatnią stronę, na której był użytkownik.

Użycie jest bardzo proste:

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

Należy również wziąć pod uwagę, że może być nullreferrer:

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

Zobacz the docs.

+0

Drugi przykład może być skrócone do 'return $ this-> redirect (Yii :: $ app-> request-> referrer: Yii :: $ app-> homeUrl); ' – cronfy

6

Here mówi, że dobrą praktyką jest sprawdzenie, czy referrer jest ustawione na pierwszym miejscu. Jeśli więc użyjesz poniższego kodu, zostaniesz przekierowany na ostatnią stronę, jeśli jest ustawiony referrer lub do skonfigurowanego homeUrl, jeśli zwrotny URL nie był wcześniej ustawiony.

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

goBack() details

redirect details

Powiązane problemy