Noqta
  • Accueil
  • Services
  • À propos
  • Écrits
  • Se connecter
écrits/tutorial/2024/06
● Tutorial11 juin 2024·15 min

7 Laravel 11 Bases : Réponses

Apprenez les bases de la gestion des réponses HTTP dans Laravel 11. Ce tutoriel couvre les diverses méthodes et propriétés pour créer et gérer les réponses efficacement.

Anis Marrouchi
Anis Marrouchi
Author
·EN · FR · AR

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.

● Tags
#Laravel#PHP#Développement web#varied#15 min de lecture
● Partage
● Une question ?

Discutez de cet article avec un agent Noqta.

Anis Marrouchi
Anis Marrouchi
Author · noqta
Suivre ↗

● À lire ensuite

Créer votre première extension Airtable : Guide étape par étape pour des fonctionnalités personnalisées
● Tutorial

Créer votre première extension Airtable : Guide étape par étape pour des fonctionnalités personnalisées

23 mai 2024
Améliorer l'efficacité du service client : Exploiter les appels d'outils obligatoires dans ChatCompletion
● Tutorial

Améliorer l'efficacité du service client : Exploiter les appels d'outils obligatoires dans ChatCompletion

20 mai 2024
Améliorer l'expérience utilisateur avec des recommandations alimentées par l'IA dans Laravel
● Tutorial

Améliorer l'expérience utilisateur avec des recommandations alimentées par l'IA dans Laravel

19 mai 2024
Noqta
Conditions générales · Politique de Confidentialité
Services
  • Automatisation IA
  • Agents IA
  • Automatisation CX
  • Vibe Coding
  • Gestion de Projet
  • Assurance Qualité
  • Développement Web
  • Intégration API
  • Applications Métier
  • Maintenance
  • Low-Code/No-Code
Liens
  • À propos de nous
  • Comment ça marche?
  • Actualités
  • Tutoriels
  • Blog
  • Contact
  • FAQ
  • Ressources
Régions
  • Arabie Saoudite
  • Émirats Arabes Unis
  • Qatar
  • Bahreïn
  • Oman
  • Libye
  • Tunisie
  • Algérie
  • Maroc
Entreprise
  • Noqta, Tunisie, Tunis, téléphone +216 40 385 594
© Noqta. Tous droits réservés.