Skip to main content

Inleiding

Laravel biedt verschillende helpers om URL’s voor je applicatie te genereren. Deze zijn vooral handig bij het bouwen van links in templates of API-responses, of bij het genereren van redirect-responses naar een andere plek in je applicatie.

Basisgebruik

URL’s genereren

Met de url helper kun je willekeurige URL’s genereren. De gegenereerde URL gebruikt automatisch het schema (HTTP of HTTPS) en de host van het huidige request dat de applicatie verwerkt.
Gebruik de query methode om een URL met querystring-parameters te genereren.
Geef je querystring-parameters op die al in het pad voorkomen, dan worden de bestaande waarden overschreven.
Je kunt ook arrays als queryparameters doorgeven. Deze waarden krijgen de juiste sleutels en worden gecodeerd in de gegenereerde URL.

De huidige URL ophalen

Als je geen pad opgeeft aan de url helper, krijg je een Illuminate\Routing\UrlGenerator instantie terug waarmee je informatie over de huidige URL kunt opvragen.
Deze methoden zijn ook toegankelijk via de URL facade.

De vorige URL ophalen

Soms wil je weten welke URL de gebruiker hiervoor heeft bezocht. Dat kan met de previous en previousPath methoden van de url helper.
Je kunt de vorige URL ook via de sessie ophalen.
Ook de routenaam van de laatst bezochte URL is via de sessie op te halen.

URL’s voor named routes

De route helper gebruik je om URL’s naar named routes te genereren. Met named routes kun je URL’s genereren zonder afhankelijk te zijn van de daadwerkelijke URL die in de route is gedefinieerd. Verandert de URL van de route, dan hoef je de aanroepen van de route functie dus niet aan te passen.
Een URL naar deze route genereer je als volgt.
Routes met meerdere parameters worden ook ondersteund.
Extra array-elementen die niet overeenkomen met de gedefinieerde routeparameters worden toegevoegd aan de querystring van de URL.

Eloquent-modellen

Vaak genereer je URL’s met de route key (meestal de primaire sleutel) van een Eloquent-model. Daarvoor kun je het Eloquent-model als parameterwaarde doorgeven. De route helper haalt de route key van het model automatisch op.

Signed URL’s

Met Laravel kun je eenvoudig “signed” URL’s naar named routes maken. Deze URL’s krijgen een “signature”-hash in de querystring, waarmee Laravel kan verifiëren dat de URL na het aanmaken niet is gewijzigd. Signed URL’s zijn vooral handig voor routes die publiek toegankelijk zijn, maar beschermd moeten worden tegen URL-manipulatie. Je kunt signed URL’s bijvoorbeeld gebruiken om een publieke “uitschrijven”-link te implementeren die je per e-mail naar klanten stuurt. Maak een signed URL met de signedRoute methode van de URL facade.
Door het absolute argument mee te geven aan de signedRoute methode kun je het domein uitsluiten van de signature-hash.
Gebruik de temporarySignedRoute methode om een tijdelijke signed URL te genereren die na de opgegeven tijd verloopt. Bij het valideren van een tijdelijke signed URL controleert Laravel of de in de URL gecodeerde vervaltijd nog niet is verstreken.

Validatieflow van signed URL’s

Signed route-requests valideren

Om te controleren of een binnenkomend request een geldige signature heeft, roep je de hasValidSignature methode aan op de Illuminate\Http\Request instantie.
Wil je bepaalde queryparameters negeren bij de validatie, gebruik dan de hasValidSignatureWhileIgnoring methode.
In plaats van de binnenkomende request-instantie te gebruiken, kun je ook de signed (Illuminate\Routing\Middleware\ValidateSignature) middleware aan de route toewijzen. Heeft het binnenkomende request geen geldige signature, dan geeft de middleware automatisch een 403 HTTP-response terug.
Bevat de signed URL geen domein, geef dan het relative argument mee aan de middleware.

Reageren op ongeldige signed routes

Wie een verlopen signed URL bezoekt, krijgt een generieke foutpagina met HTTP-statuscode 403 te zien. Je kunt dit gedrag aanpassen door in het bestand bootstrap/app.php van je applicatie een eigen “render”-closure te definiëren voor de InvalidSignatureException exception.

URL’s voor controlleracties

De action functie genereert een URL voor de opgegeven controlleractie.
Als de controllermethode routeparameters ontvangt, geef je als tweede argument een associatieve array met routeparameters door.

Fluent URI-objecten

De URI-klasse van Laravel biedt een handige fluent interface om URI’s via objecten te maken en te bewerken.
Heb je eenmaal een URI-instantie, dan kun je die fluent aanpassen.

Standaardwaarden voor URL-parameters

Soms wil je voor een bepaalde URL-parameter een standaardwaarde instellen die voor het hele request geldt. Stel bijvoorbeeld dat veel van je routes een {locale} parameter hebben.
Het is omslachtig om bij elke aanroep van de route helper locale door te geven. Met de URL::defaults methode kun je een standaardwaarde voor deze parameter definiëren die tijdens het huidige request altijd wordt toegepast. Roep deze methode aan vanuit een route-middleware, zodat je toegang hebt tot het huidige request.
Zodra de standaardwaarde voor de locale parameter is ingesteld, hoef je die waarde niet meer door te geven bij het genereren van URL’s met de route helper.
Het instellen van standaardwaarden voor URL’s kan de verwerking van Laravels impliciete model binding verstoren. Stel daarom de middleware-prioriteit zo in dat de middleware die de URL-standaardwaarden instelt vóór Laravels eigen SubstituteBindings middleware wordt uitgevoerd. Dat kan met de priority middlewaremethode in het bestand bootstrap/app.php van je applicatie.
Laatst gewijzigd op 6 september 2026