Maison >développement back-end >tutoriel php >Vérification de la méthode HTTP dans Laravel
Laravel simplifie la manipulation du verbe HTTP dans les demandes entrantes, rationalisant une gestion des opérations diversifiée dans vos applications. Les méthodes method()
et isMethod()
identifient et valident efficacement les types de demande.
Cette fonctionnalité est cruciale pour construire des API reposantes ou gérer des soumissions de formulaires complexes où des méthodes HTTP variables déclenchent une logique métier distincte. Il est particulièrement bénéfique pour la création de contrôleurs adaptables qui réagissent dynamiquement aux types de demandes entrants.
// Basic method verification $method = $request->method(); // Returns 'GET', 'POST', etc. if ($request->isMethod('post')) { // Process POST request }
Voici un exemple de gestionnaire de ressources polyvalents:
<?php namespace App\Http\Controllers; use App\Models\Resource; use Illuminate\Http\Request; class ResourceController extends Controller { public function handle(Request $request, $id = null) { return match ($request->method()) { 'GET' => $this->getHandler($id), 'POST' => $this->createHandler($request), 'PUT' => $this->updateHandler($request, $id), 'DELETE' => $this->deleteHandler($id), default => response()->json(['error' => 'Unsupported method'], 405) }; } private function getHandler($id = null) { if ($id) { return Resource::with('metadata')->findOrFail($id); } return Resource::with('metadata')->latest()->paginate(20); } private function createHandler(Request $request) { $resource = Resource::create($request->validated()); return response()->json(['message' => 'Resource created', 'resource' => $resource->load('metadata')], 201); } private function updateHandler(Request $request, $id) { $resource = Resource::findOrFail($id); $resource->update($request->validated()); return response()->json(['message' => 'Resource updated', 'resource' => $resource->fresh()->load('metadata')]); } private function deleteHandler($id) { Resource::findOrFail($id)->delete(); return response()->json(null, 204); } }
Interactions illustratives:
<code>// GET /api/resources/1 { "id": 1, "name": "Example Resource", "status": "active", "metadata": { "created_by": "john@example.com", "last_accessed": "2024-02-01T10:30:00Z" } } // PUT /api/resources/1 with invalid method { "error": "Unsupported method" }</code>
Les méthodes method()
et isMethod()
offrent une approche structurée pour implémenter la logique spécifique à la méthode tout en maintenant une organisation de code propre.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!