الكورس

Advertisements

Laravel Routing


يعد الـ Routing أحد المفاهيم الأساسية في Laravel، تسمح لك الـ routing في Laravel بتوجيه جميع طلبات التطبيق الخاصة بك إلى وحدة التحكم المناسبة.

 

💡 ينقسم الـ Routing إلى:

  1. Basic Routing
  2. Route parameters
  3. Named Routes

1. Basic Routing

 

تقبل أكثر طرق Laravel الأساسية URI و Closure ، مما يوفر طريقة بسيطة ومعبرة جدًا لتحديد المسارات.

مثال للتوضيح:

Route::get('hello', function () {
  return 'Hello World';
});

💡 يتم تحديد جميع مسارات Laravel في ملفات الـ routes الخاصة بك ، والتي تقع في lمجلد الـ routes.

بالنسبة لمعظم التطبيقات ، ستبدأ بتحديد المسارات في ملف routes/ web.php، يمكن الوصول إلى المسارات المحددة في route / web.php عن طريق إدخال عنوان URL الخاص بالمسار المحدد في المستعرض الخاص بك.

على سبيل المثال ، يمكنك الوصول إلى المسار التالي بالانتقال إلى https: //example.test/person في المستعرض الخاص بك:

Route::get('/person', '[email protected]');

💡Available Router Methods

 

تسمح لك الـ routers بتسجيل المسارات التي تستجيب لأي فعل للـ HTTP:

Route::get($uri, $callback);
Route::post($uri, $callback);
Route::put($uri, $callback);
Route::patch($uri, $callback);
Route::options($uri, $callback);
Route::delete($uri, $callback);

💡 قد تحتاج في بعض الأحيان إلى تسجيل مسار يستجيب لأفعال HTTP متعددة (POST و GET) يمكنك القيام بذلك باستخدام method الـ match:

Route::match(['get', 'post'], '/', function () {
    // your code & actions
});

💡 أو يمكنك أيضًا تسجيل مسار يستجيب لجميع أفعال HTTP باستخدام method الـ any:

Route::any('/', function () {
    // your code & actions
});

مثال للتوضيح أكثر:-

app/Http/routes.php

<?php
    Route::get('/', function () {
       return view('Hello World!');
    });
?>

resources/view/hello.blade.php

<!DOCTYPE html>
<html>
   <head>
      <title>Laravel</title>
      <meta charset="utf-8" />
   </head>
   <body>
      <div class = "container">
        <h2>Hello World!</div>
      </div>
   </body>
</html>

💡 توضيح ألية عمل الـ routes:

  1. في البداية ، يجب علينا تنفيذ URL الجذر (root) للتطبيق.
  2. يجب أن يتطابق عنوان URL الذي تم تنفيذه مع الـ method المناسبة في ملف route.php. في هذه الحالة ، يجب أن يتطابق الـ method وعنوان URL و الـ root (“/“)، سيؤدي ذلك إلى تنفيذ الدالة ذات الصلة.
  3. تستدعي الدالة موارد ‘resource‘ ملف القالب / views / hello.blade.php، بعد ذلك تستدعي الدالة دالة ()view مع argument الـ “hello” بدون استخدام blade.php.

 

💡 فى النهاية سيظهر أمامك أكواد أو صفحة الـ HTML.


2. Route Parameters

 

Required Parameters

في بعض الأحيان ، ستحتاج إلى التقاط أجزاء من URI ضمن مسارك.

على سبيل المثال ، قد تحتاج إلى التقاط الـ id أو الـ name الخاص بالمستخدم من عنوان الـ URL، يمكنك القيام بذلك عن طريق تحديد الـ parameters فى المسار:

Route::get('userid/{id}', function ($id) {
    return 'UserID is '. $id;
});

💡 يمكنك تحديد العديد من الـ parameters في مسارك:

Route::get('userid/{id}/username/{username}', function ($id, $username) {
    return 'UserID is '. $id . " & Username is " . $username;
});

Optional Parameters

 

قد تحتاج أحيانًا إلى تحديد parameter فى المسار ، ولكن تريد هذا الـ parameter اختياريًا؟!

يمكنك القيام بذلك عن طريق وضع علامة ؟ بعد اسم الـ parameter.

 

💡 تأكد من إعطاء المتغير المطابق للمسار قيمة افتراضية، كالتالى:

Route::get('user_age/{age?}', function ($age = null) {
    return $age;
});

Route::get('user_age/{age?}', function ($age = 30) {
    return $age;
});

3. Named Routes

 

تسمح الـ Named Routes (المسارات المسماة) بإنشاء عناوين URL أو عمليات إعادة توجيه (redirects) مناسبة لـ routes معينة.

 

يمكنك تحديد اسم لمسار عن طريق ربط method الـ name بتعريف المسار:

Route::get('sellar/dashboard', function () {
    // your code & actions
})->name('dashboard');

💡 يمكنك أيضًا تحديد أسماء المسارات لإجراءات الـ controller:

Route::get('sellar/dashboard', '[email protected]')->name('dashboard');

💡 مُلاحظة يجب أن تكون أسماء المسارات (routes) دائمًا فريدة (unique).


 

💡 Done: إتعرفنا فى هذا الفصل على الـ routes فى الـ Laravel بالتفصيل وبأمثلة كثيرة لزيادة الفهم! فى الفصل القادم سنتعرف على الـ Middleware.

 



الإبلاغ عن خطأ

×

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

[email protected]

شكرًا لك على مساعدتك لنا!

Advertisements