اذهب إلى المحتوى
  • 0

توضيح بشأن طرق التوجيه في تطبيقات لارافيل، وما يعنيه PUT,PATCH,DELETE وغيرهم

Khessam Ahmed

السؤال

السلام عليكم ورحمة الله والصلاة والسلام على رسول الله 

اواجه مشكل في فهم routing فبعض الدوال سبق وتعاملت معها مثل post / get / view وفهمت الغرض منها لكن البعض الاخر لم افهم كيفية عملها او الغرض منها ك PUT,PATCH,DELETE فارجو فقط افادتي بالغرض منها ومتى تستعمل وشكرا لكل من افادني 

تم التعديل في بواسطة Mustafa Suleiman
تعديل عنوان السؤال
رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 1

في تطبيقات 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" التي تعيد فقط رأس الاستجابة دون استرداد بيانات المستخدم.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 1

يمكنني توضيح استخدام هذه الدوال في Laravel من خلال مثال على هذه الدوال

على سبيل المثال، لنفترض أن لدينا تطبيق ويب يسمح للمستخدمين بإنشاء حسابات شخصية وتحديث معلوماتهم الشخصية. يتم تخزين بيانات المستخدمين في قاعدة البيانات، ويتم الوصول إليها باستخدام الـRouting في Laravel.

في هذا المثال، يتم استخدام PUT لتحديث بيانات المستخدم، PATCH لتحديث جزء من بيانات المستخدم، و DELETE لحذف حساب المستخدم.

على سبيل المثال، يمكن تعريف الـRouting في Laravel على النحو التالي:

Route::put('/users/{id}', 'UserController@update');
Route::patch('/users/{id}', 'UserController@updateProfile');
Route::delete('/users/{id}', 'UserController@delete');

وفي هذا المثال، يتم استخدام PUT لتحديث بيانات المستخدم، PATCH لتحديث جزء من بيانات المستخدم (مثل تغيير كلمة المرور فقط)، و DELETE لحذف حساب المستخدم بأكمله.

ويمكن تحديد الـController المناسب لكل دالة، حيث يتم استخدام دالة الـPUT لتحديث بيانات المستخدم، ودالة الـPATCH لتحديث جزء من بيانات المستخدم، ودالة الـDELETE لحذف حساب المستخدم.

وبهذا الشكل، يمكن للمستخدمين استخدام الدوال PUT و PATCH و DELETE في تطبيقات الويب لتحديث وحذف الموارد المختلفة، بناءً على الغرض المطلوب.

بتاريخ 4 دقائق مضت قال Khessam Ahmed:

لم افهم كلمة مورد  او مادا تعني

يعني مصطلح "المورد" (Resource) أي شيء يتم الوصول إليه أو تحديثه أو حذفه في تطبيق الويب. ويمكن أن يكون المورد مثلاً: مستخدم، تدوينة، صورة، فيديو، تعليق، إلخ.

وبشكل عام، يتم تمثيل الموارد في تطبيق الويب بواسطة عناوين URL مختلفة. على سبيل المثال، يمكن أن يكون عنوان URL لمورد مستخدم ما هو: /users/{id}، حيث يتم استخدام المعرف (id) لتمييز كل مستخدم بشكل فريد.

ويتم استخدام الـRouting في تطبيقات الويب لتحديد طريقة الوصول إلى الموارد المختلفة، وتحديد الدوال المناسبة لإنشاء، وعرض، وتحديث، وحذف هذه الموارد. ومن خلال استخدام هذه الدوال، يمكن للمستخدمين التفاعل مع المورد وإجراء العمليات المختلفة عليه، مثل تحديث ملف شخصي أو حذف تعليق.

وبشكل عام، يساعد استخدام مفهوم المورد في تبسيط عملية برمجة تطبيقات الويب، وتحديد العمليات المناسبة للتفاعل مع الموارد المختلفة في التطبيق.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 1
بتاريخ الآن قال Khessam Ahmed:

لم افهم كلمة مورد  او مادا تعني

المورد او resource في إطار تطبيق لارافيل، يمكن أن يكون أي شيء يتم التعامل معه عن طريق API. على سبيل المثال، إذا كان التطبيق هو تطبيق مدونة، فإنه يمكن أن يكون المورد هو المقالات أو التعليقات. يمكن أن يكون المورد مصدرًا للبيانات المختلفة مثل العملاء أو الطلبات أو المبيعات أو أي شيء آخر يتم التعامل معه من خلال API. ولذلك فإنك ستجد مثل هاته الكلمة متكررة كثيرا في تطبيقات لارافيل. 

فالمستخدم هو مورد، والمقالة هي ايضا. وكذلك أي نموذج بيانات معين او مصدر للبيانات.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

يتم التعامل مع عمليات التوجيه في تطبيقات الخادم بهاته الأفعال غالبا، ولكل منها دلالة معينة رغم أن بعضها قد يشترك في طريقة عمله او تخاطبه بوساطة بروتوكول الـ HTTP. ولكن بشكل عام: 

  • GET: تُستخدم للحصول على المعلومات من المورد، مثل الصفحات أو البيانات من قاعدة البيانات. مثال: طلبية عرض صفحة المستخدم.
  • POST: تُستخدم لإنشاء مورد جديد عند إرسال البيانات إلى الخادم. مثال: طلبية انشاء مستخدم جديد.
  • PUT: تُستخدم لتحديث المورد بالكامل، مثال: طلبية تحديث بيانات مستخدم معين، بحيث يتم تحديثها بالكامل.
  • PATCH: تُستخدم لتحديث المورد بشكل جزئي، مثال: طلبية تحديث بيانات مستخدم معين، بحيث يتم تحديثها بشكل جزئي.
  • DELETE: تُستخدم لحذف المورد بشكل كامل.

وهاته هي افعال وطرق HTTP، وتتواجد كتوابع للصنف Route بالاضافة الى بعض التوابع الأخرى. لتشير الى نفس الشيء ايضا.

فالتابع get يولد مسارا بالطريقة GET و التابع post يولد مسارا بالطريقة POST وما الى ذلك .. 

اما بالنسبة للتابع view فهو يستعمل لتصيير صفحة عرض انطلاقا من المسار. على سبيل المثال: 

Route::view('/home' ,'main-page');

عند طلب المسار home/ سيقوم تطبيق لارافيل لديك بالبحث عن ملف العرض main-page.blade.php لتصييرها كصفحة.

فكر بالأمر بمدلوله ليسهل عليك التعامل معه، فـ PATCH بالانجليزية تعني ترقيع، والترقيع قد يشير الى ضبط جزئية او تعديل جزء معين من الكل.  في حين أن الوضع أو PUT تحمل مدلولا الى وضع شيء بدل الآخر، وهذا هو الفرق بينهما ببساطة فالفعل PATCH يستخدم للطلبيات التي يتم تحديث فيها جزئية معينة، في حين ان PUT يستخدم للطلبيات التي يتم فيها تحديث المورد بشكل كامل.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 9 دقائق مضت قال Adnane Kadri:

يتم التعامل مع عمليات التوجيه في تطبيقات الخادم بهاته الأفعال غالبا، ولكل منها دلالة معينة رغم أن بعضها قد يشترك في طريقة عمله او تخاطبه بوساطة بروتوكول الـ HTTP. ولكن بشكل عام: 

  • GET: تُستخدم للحصول على المعلومات من المورد، مثل الصفحات أو البيانات من قاعدة البيانات. مثال: طلبية عرض صفحة المستخدم.
  • POST: تُستخدم لإنشاء مورد جديد عند إرسال البيانات إلى الخادم. مثال: طلبية انشاء مستخدم جديد.
  • PUT: تُستخدم لتحديث المورد بالكامل، مثال: طلبية تحديث بيانات مستخدم معين، بحيث يتم تحديثها بالكامل.
  • PATCH: تُستخدم لتحديث المورد بشكل جزئي، مثال: طلبية تحديث بيانات مستخدم معين، بحيث يتم تحديثها بشكل جزئي.
  • DELETE: تُستخدم لحذف المورد بشكل كامل.

وهاته هي افعال وطرق HTTP، وتتواجد كتوابع للصنف Route بالاضافة الى بعض التوابع الأخرى. لتشير الى نفس الشيء ايضا.

فالتابع get يولد مسارا بالطريقة GET و التابع post يولد مسارا بالطريقة POST وما الى ذلك .. 

اما بالنسبة للتابع view فهو يستعمل لتصيير صفحة عرض انطلاقا من المسار. على سبيل المثال: 

Route::view('/home' ,'main-page');

عند طلب المسار home/ سيقوم تطبيق لارافيل لديك بالبحث عن ملف العرض main-page.blade.php لتصييرها كصفحة.

فكر بالأمر بمدلوله ليسهل عليك التعامل معه، فـ PATCH بالانجليزية تعني ترقيع، والترقيع قد يشير الى ضبط جزئية او تعديل جزء معين من الكل.  في حين أن الوضع أو PUT تحمل مدلولا الى وضع شيء بدل الآخر، وهذا هو الفرق بينهما ببساطة فالفعل PATCH يستخدم للطلبيات التي يتم تحديث فيها جزئية معينة، في حين ان PUT يستخدم للطلبيات التي يتم فيها تحديث المورد بشكل كامل.

لم افهم كلمة مورد  او مادا تعني

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...