Introduction
Laravel propose plusieurs helpers pour générer les URL de votre application. Ils sont particulièrement utiles pour construire des liens dans les templates ou les réponses d’API, ou pour générer des réponses de redirection.Utilisation de base
Générer une URL
Le helperurl permet de générer n’importe quelle URL.
L’URL générée utilise automatiquement le schéma (HTTP ou HTTPS) et l’hôte de la requête en cours.
query.
Récupérer l’URL courante
Sans chemin,url renvoie une instance de Illuminate\Routing\UrlGenerator donnant accès à l’URL courante.
URL.
Récupérer l’URL précédente
Vous voulez parfois connaître l’URL précédemment visitée par l’utilisateur. Utilisezprevious ou previousPath du helper url.
URL vers des routes nommées
Le helperroute permet de générer une URL vers une route nommée.
Les routes nommées évitent de dépendre de l’URL réelle définie sur la route.
Ainsi, si l’URL change, il n’y a pas besoin de modifier les appels à route.
Modèles Eloquent
Souvent, vous générez des URL avec la clé de route d’un modèle Eloquent (généralement la clé primaire). Passez le modèle directement comme valeur de paramètre ;route extrait automatiquement la clé de route du modèle.
URL signées
Laravel permet de créer facilement des URL « signées » vers des routes nommées. Un hachage de « signature » est ajouté à la chaîne de requête, ce qui permet à Laravel de vérifier qu’elle n’a pas été altérée. Les URL signées sont particulièrement utiles pour des routes accessibles publiquement mais qui doivent être protégées contre la manipulation. Par exemple, on peut les utiliser pour un lien public de « désinscription » envoyé par e-mail. Utilisez la méthodesignedRoute de la façade URL.
absolute de signedRoute, on peut exclure le domaine du hachage de signature.
temporarySignedRoute.
Laravel vérifie alors que l’horodatage d’expiration encodé n’est pas dépassé.
Flux de vérification d’une URL signée
Vérifier une requête de route signée
Pour vérifier que la requête reçue possède une signature valide, appelezhasValidSignature sur l’instance Illuminate\Http\Request.
hasValidSignatureWhileIgnoring.
signed (Illuminate\Routing\Middleware\ValidateSignature) à la route au lieu d’utiliser l’instance de requête.
Si la signature est invalide, le middleware retourne automatiquement une réponse HTTP 403.
relative au middleware.
Réponse aux URL signées invalides
Une URL signée expirée affiche par défaut une page d’erreur générique avec le code HTTP403.
Personnalisez ce comportement en définissant une closure render pour l’exception InvalidSignatureException dans bootstrap/app.php.
URL d’action de contrôleur
La fonctionaction génère une URL vers une action de contrôleur.
Objet URI fluent
La classe URI de Laravel offre une interface fluent pratique pour créer et manipuler des URI en tant qu’objets.Paramètres URL par défaut
Vous voulez parfois définir des valeurs par défaut pour toute la requête. Par exemple, si de nombreuses routes ont un paramètre{locale} :
locale à chaque appel de route est pénible.
Utilisez URL::defaults pour définir une valeur par défaut appliquée durant la requête.
Appelez-la depuis un middleware de route pour accéder à la requête.
locale définie, plus besoin de la passer à route.
La définition de valeurs par défaut peut interférer avec l’implicit model binding de Laravel.
Configurez la priorité des middlewares pour que le middleware définissant les valeurs par défaut s’exécute avant
SubstituteBindings de Laravel.
Utilisez la méthode priority dans bootstrap/app.php.