7 Laravel 11 Bases : Réponses

Introduction
Toutes les routes et contrôleurs doivent retourner une réponse à envoyer au navigateur de l'utilisateur. Laravel fournit plusieurs façons différentes de retourner des réponses. La réponse la plus basique est de retourner une chaîne depuis une route ou un contrôleur :
Route::get('/', function () {
return 'Hello World';
});Vous pouvez également retourner des tableaux. Le framework convertira automatiquement le tableau en réponse JSON :
Route::get('/', function () {
return [1, 2, 3];
});Objets de réponse
Typiquement, vous ne retournerez pas seulement des chaînes ou tableaux simples. Au lieu de cela, vous retournerez des instances Illuminate\Http\Response complètes ou des vues :
Route::get('/home', function () {
return response('Hello World', 200)
->header('Content-Type', 'text/plain');
});Modèles et collections Eloquent
Vous pouvez également retourner des modèles et collections Eloquent directement depuis vos routes et contrôleurs :
use App\Models\User;
Route::get('/user/{user}', function (User $user) {
return $user;
});Attacher des en-têtes aux réponses
La plupart des méthodes de réponse sont chaînables :
return response($content)
->header('Content-Type', $type)
->header('X-Header-One', 'Valeur de l\'en-tête')
->header('X-Header-Two', 'Valeur de l\'en-tête');Ou utilisez la méthode withHeaders :
return response($content)
->withHeaders([
'Content-Type' => $type,
'X-Header-One' => 'Valeur de l\'en-tête',
]);Attacher des cookies aux réponses
return response('Hello World')->cookie(
'name', 'value', $minutes);Redirections
Les réponses de redirection sont des instances de la classe Illuminate\Http\RedirectResponse :
Route::get('/dashboard', function () {
return redirect('home/dashboard');
});Rediriger vers la page précédente
Route::post('/user/profile', function () {
return back()->withInput();
});Rediriger vers des routes nommées
return redirect()->route('login');
return redirect()->route('profile', ['id' => 1]);Rediriger vers des actions de contrôleur
use App\Http\Controllers\UserController;
return redirect()->action([UserController::class, 'index']);Rediriger vers des domaines externes
return redirect()->away('https://www.google.com');Rediriger avec des données de session flashées
return redirect('dashboard')->with('status', 'Profil mis à jour !');Dans Blade :
@if (session('status'))
{{ session('status') }}
@endifAutres types de réponses
Réponses de vue
return response()
->view('hello', $data, 200)
->header('Content-Type', $type);Réponses JSON
return response()->json([
'name' => 'Abigail',
'state' => 'CA',
]);Téléchargements de fichiers
return response()->download($pathToFile);
return response()->download($pathToFile, $name, $headers);Téléchargements en streaming
return response()->streamDownload(function () {
echo GitHub::api('repo')
->contents()
->readme('laravel', 'laravel')['contents'];
}, 'laravel-readme.md');Réponses de fichiers
return response()->file($pathToFile);
return response()->file($pathToFile, $headers);Macros de réponse
Si vous souhaitez définir une réponse personnalisée réutilisable, utilisez la méthode macro :
use Illuminate\Support\Facades\Response;
Response::macro('caps', function (string $value) {
return Response::make(strtoupper($value));
});Référence
Pour plus d'informations, consultez la documentation Laravel par l'équipe Laravel.
Discutez de votre projet avec nous
Nous sommes ici pour vous aider avec vos besoins en développement Web. Planifiez un appel pour discuter de votre projet et comment nous pouvons vous aider.
Trouvons les meilleures solutions pour vos besoins.
Articles connexes

6 Laravel 11 Bases : Requêtes
Apprenez les bases de la gestion des requêtes HTTP dans Laravel 11. Ce tutoriel couvre les diverses méthodes et propriétés pour interagir avec et récupérer les données des requêtes.

Demarrer avec Laravel 11 : Installation, Configuration et Structure des Repertoires
Demarrer avec Laravel 11 : Installation, Configuration et Structure des Repertoires

2 Les Bases de Laravel 11 : Routage
Un guide informatif sur les bases du routage dans Laravel 11, adapte aux developpeurs de tous niveaux.