Skip to main content

Qu’est-ce qu’une réponse

Un contrôleur ou une route doit renvoyer une réponse au navigateur. Laravel propose des mécanismes simples pour retourner divers formats : chaîne, tableau, vue, redirection, JSON, etc.

Réponses de base

Retourner une chaîne

La réponse la plus simple est une chaîne. Laravel la convertit automatiquement en réponse HTTP appropriée.

Retourner un tableau

Un tableau retourné est automatiquement converti en JSON.
Retourner directement un modèle ou une collection Eloquent produit également une conversion automatique en JSON. Un pattern très utilisé pour créer rapidement des API.

Retourner un modèle Eloquent

L’objet Response

Le helper response() permet de retourner une réponse détaillée avec code HTTP et en-têtes personnalisés.
Le premier argument est le corps de la réponse, le second le code HTTP.

Codes HTTP courants

Réponse de vue

Pour afficher un template Blade depuis un contrôleur, utilisez view(). C’est la réponse la plus courante dans une application web.
Le premier argument est le nom de la vue, le second un tableau de données pour la vue.
Typer le retour avec Illuminate\View\View clarifie l’intention du code.

Contrôler les détails avec response()->view()

Pour spécifier aussi le code HTTP et les en-têtes, utilisez response()->view().

Redirections

Redirection de base

Le helper redirect() retourne une réponse de redirection. Souvent utilisé après l’envoi d’un formulaire.
Exemple en contrôleur :

Redirection vers une route nommée

route() évite d’écrire l’URL directement. Pour ne pas devoir modifier le code si l’URL change, préférez les routes nommées.

Retour à la page précédente

back() renvoie vers la page précédente. Souvent utilisé lors d’un échec de validation.

Redirection avec message flash

with() ajoute un message en session lors de la redirection. Idéal pour confirmer un envoi de formulaire.
Affichez le message dans Blade :

Réponses JSON

Pour une API, retournez du JSON avec response()->json(). L’en-tête Content-Type: application/json est ajouté automatiquement.
Vous pouvez spécifier le code HTTP.
Exemple en contrôleur :
Retourner simplement un tableau ou un modèle Eloquent produit du JSON, mais response()->json() offre un contrôle fin sur code HTTP et en-têtes.

En-têtes de réponse

header() ajoute un en-tête HTTP.
Utilisez withHeaders() pour en ajouter plusieurs.

Exemple : quelle réponse choisir dans un contrôleur

Exemple récapitulatif adaptant la réponse à l’usage.
1

Définition des routes

2

Implémentation du contrôleur

Dans une application web, le choix se fait généralement entre View et RedirectResponse. Les actions d’affichage renvoient une View, tandis que les actions de modification (création, mise à jour, suppression) renvoient une RedirectResponse après le traitement.

Prochaines étapes

Validation

Vérifiez les données d’entrée avec la validation avant de retourner une réponse.
Dernière modification le 13 juillet 2026