في تطبيقات Laravel، توجد طرق مختلفة للتوجيه (Routing) للوصول إلى مسارات محددة في التطبيق، وتستخدم هذه الطرق لتعريف العمليات المتاحة لتطبيقك، مثل إنشاء سجل جديد، تحديث سجل موجود، استرجاع سجل معين، أو حذف سجل. تساعدك هذه الطرق في تنظيم وترتيب واجهة تطبيقك.
فيما يلي شرح لبعض الطرق الشائعة في Laravel والغرض منها ومتى يتم استخدامها:
1- POST
الغرض: تستخدم لإرسال طلب لإنشاء مورد جديد.
مثال: إرسال طلب لإنشاء مستخدم جديد في تطبيقك.
Route::post('/users', 'UserController@store');
// UserController.php
public function store(Request $request)
{
// استلام البيانات المطلوبة لإنشاء المستخدم من الطلب
$userData = $request->only(['name', 'email', 'password']);
// قم بإنشاء المستخدم وحفظه في قاعدة البيانات
$user = User::create($userData);
// استعادة الاستجابة ببيانات المستخدم المنشأ
return response()->json($user, 201);
}
2- GET
الغرض: تستخدم لاسترجاع معلومات محددة من المورد.
مثال: استرجاع بيانات المستخدم الذي يحمل معرّف معين.
Route::get('/users/{id}', 'UserController@show');
// UserController.php
public function show($id)
{
// البحث عن المستخدم المرتبط بالمعرّف المحدد
$user = User::findOrFail($id);
// استعادة الاستجابة ببيانات المستخدم
return response()->json($user);
}
3- PUT/PATCH
الغرض: تستخدم لتحديث مورد محدد.
مثال: تحديث بيانات المستخدم الذي يحمل معرّف معين.
وتستطيع استخدام PUT لتحديث جميع البيانات في المورد، بينما يمكن استخدام PATCH لتحديث جزء من البيانات فقط.
Route::put('/users/{id}', 'UserController@update');
أو
Route::patch('/users/{id}', 'UserController@update');
// UserController.php
public function update(Request $request, $id)
{
// استلام البيانات المطلوبة لتحديث المستخدم من الطلب
$userData = $request->only(['name', 'email']);
// البحث عن المستخدم المرتبط بالمعرّف المحدد
$user = User::findOrFail($id);
// تحديث بيانات المستخدم
$user->update($userData);
// استعادة الاستجابة ببيانات المستخدم المحدثة
return response()->json($user);
}
4- DELETE
الغرض: تستخدم لحذف مورد محدد.
مثال: حذف مستخدم معين من قاعدة البيانات.
الطرق الأربعة السابقة (POST، GET، PUT/PATCH، DELETE) تُعد الأكثر شيوعًا في RESTful API وتطبيقات الويب، وتستخدم في بناءً عمليات CRUD (Create، Read، Update، Delete) المتعارف عليها في تطوير البرمجيات.
Route::delete('/users/{id}', 'UserController@destroy');
المسار هو "/users/{id}" للوصول إلى الدالة "destroy" في "UserController"، والتي تتولى حذف المستخدم المرتبط بالمعرف الممرر كمتغير في المسار.
ثم يمكنك تنفيذ هذا المسار عن طريق استخدام طريقة DELETE في نموذج الاستدعاء عبر الشبكة.
مثلاً، باستخدام إطار العمل Axios في JavaScript، يمكننا استخدام الرمز التالي لحذف المستخدم:
axios.delete('/users/1')
.then(response => {
console.log('تم حذف المستخدم بنجاح');
})
.catch(error => {
console.error('حدث خطأ أثناء حذف المستخدم');
});
وهناك العديد من الطرق الأخرى التي يمكن استخدامها في توجيه Laravel، إليك بعض الأمثلة الإضافية:
OPTIONS
الغرض: يُستخدم لاستعلام الخيارات المدعومة لمسار محدد.
مثال: استعلام الخيارات المدعومة لمسار معين للاحتفاظ بمعلومات الخيارات المتاحة.
Route::options('/users', 'UserController@options');
يتم تعيين المسار "/users" للوصول إلى الدالة "options" في "UserController" التي تستعرض الخيارات المدعومة لمسار المستخدم.
HEAD
الغرض: يُستخدم لاستعلام رأس الاستجابة فقط دون استرجاع البيانات الفعلية.
مثال: التحقق من توفر المورد دون استعادة بياناته.
Route::head('/users/{id}', 'UserController@head');
تم وضع المسار "/users/{id}" للوصول إلى الدالة "head" في "UserController" التي تعيد فقط رأس الاستجابة دون استرداد بيانات المستخدم.