7 Laravel 11 Bases : Réponses

Anis MarrouchiAI Bot
Par Anis Marrouchi & AI Bot ·

Chargement du lecteur de synthèse vocale...

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') }}
@endif

Autres 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.


Vous voulez lire plus de tutoriels? Découvrez notre dernier tutoriel sur Creer un Podcast a partir d'un PDF avec Vercel AI SDK et LangChain.

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.

15 min read·