التحقق من HTTP method المستخدمة في لارافيل

تُوفر لارافيل طرقًا بديهية للعمل مع أفعال HTTP في الطلبات الواردة، مما يسهل التعامل مع الـ HTTP method  المختلفة عند التواصل مع تطبيقك.

توفر طريقتا `method()` و `isMethod()` طريقة ممتازة لتحديد والتحقق من أنواع الطلبات. تُصبح هذه الوظيفة قيّمة بشكل خاص عند بناء واجهات برمجة تطبيقات RESTful أو عند التعامل مع عمليات إرسال النماذج المعقدة حيث تُنشّط أساليب HTTP المختلفة

وهي مفيدة بشكل خاص لإنشاء وحدات تحكم متعددة الاستخدامات يمكنها تكييف سلوكها بناءً على نوع الطلب الوارد.

// Basic method checking
$method = $request->method(); // Returns 'GET', 'POST', etc.
if ($request->isMethod('post')) {
// Handle POST request
}
هنا مثال على مُعالِج موارد مرن:
<?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->handleGet($id),
'POST' => $this->handleCreate($request),
'PUT' => $this->handleUpdate($request, $id),
'DELETE' => $this->handleDelete($id),
default => response()->json(['error' => 'Method not allowed'], 405)
};
}
 
private function handleGet($id = null)
{
if ($id) {
return Resource::with('metadata')
->findOrFail($id);
}
return Resource::with('metadata')
->latest()
->paginate(20);
}
 
private function handleCreate(Request $request)
{
$resource = Resource::create($request->validated());
 
return response()->json([
'message' => 'Resource created successfully',
'resource' => $resource->load('metadata')
], 201);
}
 
private function handleUpdate(Request $request, $id)
{
$resource = Resource::findOrFail($id);
$resource->update($request->validated());
return response()->json([
'message' => 'Resource updated successfully',
'resource' => $resource->fresh()->load('metadata')
]);
}
 
private function handleDelete($id)
{
Resource::findOrFail($id)->delete();
 
return response()->json(null, 204);
}
}
كمثال :
// 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": "Method not allowed"
}
توفر طريقتا method() و isMethod() طريقةً نظيفةً لتنفيذ منطق محدد للطريقة مع الحفاظ على تنظيم الكود البرمجي.

جميع الحقوق محفوظة © 2025 Laravel | عربي