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

السؤال

نشر (معدل)

السلام عليكم ورحمة الله لدي مشكل فهم في laravel routes كا get & post وغيرها delet & options ..الخ كما انني لم استوعب توابعها ففي غالبية الشروحات يضعونها دون شرح كا group & name and where وغيرهم فلو تكرمتم بشرحها لي ان لم يكن في الامر عسر وشكرا لكل من افادني والصلاة والسلام على رسول الله ❤

تم التعديل في بواسطة Hassan Hedr
توضيح العنوان

Recommended Posts

  • 0
نشر

إطار عمل لارافل يقدم توابع يمكن استخدامها للتعامل مع طلبات HTTP القادمة إلى الخادم، لذا بداية يجب فهم بروتوكول HTTP وأن الطلبات فيه تحوي على طرق Methods تعبر كل منها عن نية معينة يريدها المرسل، وفي تطبيقك تستجيب لكل نوع من تلك الطرق على حدى، وذلك عبر تسجيل تابع يعالج الطلب القادم من ذلك النوع، والطرق هي التالي:

Route::get('/', function(){
  // GET طلب من نوع
});

Route::post('/', function(){
  // POST طلب من نوع
});

Route::put('/', function(){
  // PUT طلب من نوع
});

Route::patch('/', function(){
  // PATCH طلب من نوع
});

Route::delete('/', function(){
  // DELETE طلب من نوع
});

Route::options('/', function(){
  // OPTIONS طلب من نوع
});

Route::head('/', function(){
  // HEAD طلب من نوع
});

يمكنك الرجوع إلى توثيق التوجيه (Routing) في Laravel، والاستفادة من قراءة المقالات التالية لفهم HTTP أكثر:

 

  • 0
نشر

سأكمل شرح الخاصيتين:

  • Name: تعمل على وضع اسم لمسار معين، وبهذا يقلل من تعقيد الشيفرة.
Route::get('/user/profile', function () {
    //
})->name('profile');

لاحظ أن المسار user/profile له اسم مختصر profile.

مثلاً، لإعادة التوجيه ضمن المتحكم لمسار صفحة المستخدم تصبح الشيفرة:

return redirect()->route('profile');
                      ^^^^^^^^^^^^^

كما أن اختباره اسم المسار يصبح ضمن كائن الطلبية ويمكن اختبارها مباشرة ضمنه

public function handle($request, Closure $next)
{
    if ($request->route()->named('profile')) {
        //
    }
 
    return $next($request);
}

 

  • أما Group: تعمل على تجميع أكثر من مسار وإعطائهم بادئة مشتركة أو توجيه الطلبيات إلى middleware معين أو أكثر، مثلاً

بادئة مشتركة prefix:

Route::prefix('admin')->group(function () {
    Route::get('/users', function () {
        // Matches The "/admin/users" URL
    });
});

وسيط مشترك middleware:

Route::middleware(['middleware1', 'middleware2'])->group(function () {

    Route::get('/', function () {
        // Uses first & second middleware...
    });
 
    Route::get('/user/profile', function () {
        // Uses first & second middleware...
    });
});

طبعاً يمكنك مراجعة التوثيق laravel 9 routing

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...