Wat is een response
Controllers en routes moeten een response teruggeven aan de browser van de gebruiker. Laravel biedt een eenvoudig mechanisme om responses in allerlei vormen terug te geven, zoals strings, arrays, views, redirects en JSON.Basisresponses
Een string teruggeven
De eenvoudigste response is het teruggeven van een string. Laravel zet deze automatisch om in een passende HTTP-response.Een array teruggeven
Als je een array teruggeeft, zet Laravel deze automatisch om naar JSON.Als je een Eloquent-model of collectie rechtstreeks returnt, wordt deze automatisch omgezet naar JSON. Dit is een veelgebruikt patroon omdat je er heel eenvoudig een API mee bouwt.
Een Eloquent-model teruggeven
Het Response-object
Met deresponse()-helper kun je een gedetailleerde response teruggeven waarin je de HTTP-statuscode en headers opgeeft.
response() is de body van de response, het tweede argument de HTTP-statuscode.
Veelgebruikte HTTP-statuscodes
View-responses
Om vanuit een controller een Blade-template weer te geven gebruik jeview().
Dit is de meest voorkomende response in webapplicaties.
view() is de naam van de view, het tweede argument een array met data die je aan de view doorgeeft.
Meer controle met response()->view()
Wil je ook een statuscode of headers meegeven, gebruik dan response()->view().
Redirects
Basisredirect
Deredirect()-helper geeft een redirect-response terug.
Je gebruikt deze vaak om de gebruiker na het versturen van een formulier naar een andere pagina te leiden.
Redirecten naar een named route
Met deroute()-functie kun je het redirect-doel opgeven via de routenaam in plaats van de URL zelf.
Zelfs als de URL verandert, hoef je niets aan te passen — het gebruik van named routes is dan ook een best practice.
Terug naar de vorige pagina
Metback() keert de gebruiker terug naar de pagina waar hij vandaan kwam.
Dit wordt vaak gebruikt bij een redirect na een mislukte validatie.
Redirect met een flash-bericht
Metwith() kun je bij een redirect een bericht in de sessie meegeven.
Handig om na een geslaagde formulierinzending een melding te tonen.
JSON-responses
Bij het bouwen van een API gebruik jeresponse()->json() om een JSON-response terug te geven.
De header Content-Type: application/json wordt automatisch ingesteld.
Ook door simpelweg een array of Eloquent-model te returnen krijg je een JSON-response, maar met
response()->json() heb je fijnmazige controle over statuscodes en headers.Response-headers
Met deheader()-methode voeg je HTTP-headers toe aan de response.
withHeaders().
Cookies
Om een cookie aan een response toe te voegen gebruik jecookie(). Wil je cookies verwijderen, dan kun je met withoutCookie() één cookie en met withoutCookies() meerdere cookies laten verlopen.
Praktijkvoorbeeld: het juiste responsetype in een controller
Een voorbeeld dat laat zien welk responsetype je in welke situatie gebruikt.1
Routes definiëren
2
Controller implementeren
Volgende stap
Validatie
Bekijk hoe je invoerdata valideert voordat je een response teruggeeft.