Les fonctions de redirection de Laravel

Laravel offre tous les outils nécessaires pour effectuer une direction vers une autre page Web, que ce soit à l'aide de la fonction d'aide redirect() ou de la fonction d'aide back().

▼Publicité

Fonction redirect()

La fonction redirect() peut recevoir un paramètre pour lui indiquer à quel endroit elle doit effectuer la redirection.

Ce paramètre sera un URL relatif (ex : produits) ou absolu (ex : http://mondomaine.com/produits). La méthode d'action correspondant à cet URL, tel que précisé dans les routes, sera alors exécutée.

Par exemple, pour retourner à la liste des produits dont l'URL est http://mondomaine.com/produits :

Contrôleur Laravel (PHP)

return redirect('produits');

Pour retourner à la page d'accueil :

Contrôleur Laravel (PHP)

return redirect('/');

Une autre façon de préciser la redirection consiste à faire suivre redirect() par une flèche puis une autre fonction.

  • redirect()->route(nomRoute) pour rediriger vers une route nommée (la méthode d'action correspondant à cette route sera exécutée)
  • redirect()->action(NomControleur@nomMethode) pour rediriger vers une méthode d'action
  • redirect()->guest(route('nomRoute')) pour rediriger vers une route nommée lorsque l'usager n'est pas authentifié
  • redirect()->intended() pour rediriger vers la page qui avait été demandée avant d'être interceptée par le middleware d'authentification. Il est possible de passer un URL en paramètre, qui sera utilisé si l'URL original n'était pas disponible.

Par exemple, pour retourner à la route nommée produits.index :

Contrôleur Laravel (PHP)

return redirect()->route('produits.index');

Il est également possible de faire suivre des informations lors de la redirection :

  • redirect()->...->with(['nomVariable' => 'valeur', 'autreVariable' => 'autre valeur']) : pour faire suivre des variables de session flash ou, en anglais, flashed session data. Ces variables existeront l'instant d'une seule requête HTTP.
  • redirect()->...->withInput() : pour faire suivre les informations entrées dans un formulaire.

Ex :

Contrôleur Laravel (PHP)

return redirect('produits')->with(['etatOperation' => 'success', 'messageFlash' => 'Le produit a été ajouté avec succès !']); 

Fonction back()

La fonction back(), qui est l'équivalent de redirect(url()->previous()), permet de retourner à la page précédente :

Contrôleur Laravel (PHP)

return back();

Tout comme avec redirect(), il est possible de faire suivre de l'information :

Contrôleur Laravel (PHP)

return back()->withInput();

Pour plus d'information

« All about Redirects in Laravel 5 ». Laravel Daily. http://laraveldaily.com/all-about-redirects-in-laravel-5/

« HTTP Responses - Redirects ». Laravel. https://laravel.com/docs/master/responses#redirects

« Routes file: redirect “everything else” to homepage ». Laravel Daily. http://laraveldaily.com/routes-file-redirect-everything-else-to-homepage/

Merci de partager ! Share on FacebookTweet about this on TwitterShare on Google+Share on LinkedInPin on PinterestShare on StumbleUponEmail this to someone
Catégories