web-dev-qa-db-fra.com

Yii2 redirige vers la page précédente

Maintenant, mon application utilise gridview pour répertorier toutes les informations. La page est également paginée. Lorsque l'utilisateur clique sur le numéro de pagination, puis sur Éditer et sur Enregistrer. Il redirige l'utilisateur pour afficher la page. Ce que je veux faire pour rediriger l'utilisateur vers la page précédente (URL avec numéro de pagination).

25
Chhorn Soro

Vous pouvez utiliser Yii::$app->request->referrer qui renvoie la dernière page sur laquelle l'utilisateur se trouvait.

L'utilisation est simple:

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

Vous devez également tenir compte du fait que referrer peut être null:

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

Voir les docs .

97
deacs

Ici il est conseillé de vérifier si referrer est défini à la première place . Ainsi, si vous utilisez le code suivant, vous serez redirigé vers la dernière page si le parrain est défini ou à votre homeUrl configuré si l'URL de retour n'a pas été défini auparavant.

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

Détails goBack ()

Détails de la redirection

8
Kostas Mitsarakis

C'est vrai ce que dit @Kostas, mais je pense qu'il serait préférable de simplement coder ce qui suit, car goBack prend déjà en compte un paramètre null dans goBack HOME.

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

Je l'ai testé et cela fonctionne bien.

1
daniroyo