بضائع

Laravel: مقدمة لتوجيه Laravel

يسمح التوجيه في Laravel للمستخدمين بتوجيه جميع طلبات التطبيق إلى وحدة التحكم المناسبة. تتعرف معظم المسارات الأولية في Laravel على معرف الأصول الموحد وتقبله جنبًا إلى جنب مع الإغلاق ، مما يوفر طريقة توجيه بسيطة ومعبرة.

ما هو الطريق (الطريق)؟

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

في Laravel ، تُنشأ المسارات داخل مجلد le routes. تم إنشاؤها في الملف web.php لمواقع الويب وداخلها api.php لواجهات برمجة التطبيقات.

هؤلاء route للمجموعة middleware الشبكة ، وتسليط الضوء على حالة الجلسة والأمن CSRF. الطرق في route/api.php هم عديمي الحالة ويتم تعيينهم لمجموعة البرامج الوسيطة API.
التثبيت المسبقdefiيأتي Laravel nita بمسارين ، أحدهما للويب والآخر لواجهة برمجة التطبيقات. هذا ما يبدو عليه مسار الويب web.php:

Route::get('/', function () {
   return view('welcome');
});

ما هو الطريق في Laravel؟

جميع مسارات Laravel هي definiti في ملفات المسار الموجودة داخل الدليل routes. تطبيق إدارة الطريق ، definished في الملف App\Providers\RouteServiceProvider، يعتني بترتيب هذه الملفات تلقائيًا. الملف route/web.php defiمحاذاة المسارات لواجهة الويب الخاصة بك.

ممكن defiحدد مسارًا لإجراء وحدة التحكم هذه على النحو التالي:

Route::get(‘user/{id}’, ‘UserController@show’);

Route::resource: طريقة Route::resource تنتج جميع المسارات الأساسية المطلوبة لتطبيق ما وتتم إدارتها من خلال فئة وحدة التحكم.

عندما يتطابق طلب مع عنوان URI للمسار المحدد ، يتم استدعاء الطريقة show defiانتهى في وحدة التحكم App\Http\ControllersUserController، تمرير معلمات المسار إلى الطريقة.

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

التثبيت المسبقdefiيأتي Laravel nita بمسارين: أحدهما للويب والآخر لواجهة برمجة التطبيقات. إليك ما يبدو عليه المسار إلى الويب في web.php:

Route::get(‘/’, function () {

return view(‘welcome’);

});

برمجية Laravel الوسيطة بمثابة جسر بين الطلب ورد الفعل. يمكن أن يكون نوعًا من مكونات المرشح.

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

طرق route

الكود السابق defiيشتمل على مسار إلى الصفحة الرئيسية. كلما تلقى هذا المسار طلبًا get إلى /، سيعود ال view welcome

جميع مسارات Laravel هي defiنيتي في الخاص بك routing، والتي تقع داخل دليل dei routes. بالتالي، l'AppProvidersRouteServiceProvider من التطبيق يصطف هذه السجلات. الملف route/web.php يحتوي على المسارات التي تتم إدارتها لواجهة الويب الخاصة بك.

هيكل المسار بسيط للغاية. افتح الملف المناسب (web.phpo `api.php) وابدأ سطر التعليمات البرمجية بـ `Route:: `، متبوعًا بالطلب الذي تريد تعيينه لهذا المسار المحدد ثم حدد الوظيفة التي سيتم تنفيذها بعد الطلب.

يقدم Laravel توابع المسار التالية:

  • get
  • post
  • put
  • delete
  • patch
  • options

المسارات defined في Laravel داخل صنف المسار مع HTTP ، مسار الرد والإغلاق ، أو وحدة التحكم.

كيفية إنشاء مسارات في Laravel

لنرى كيف يمكنك إنشاء مساراتك الخاصة في Laravel.

مسار GET أساسي

سأقوم الآن بإنشاء مسار أساسي يطبع جدول الضرب 2.

Route::get('/table', function () {
   for($i =1; $i <= 10 ; $i++){
       echo "$i * 2 = ". $i*2 ."<br>";
   }   
});

في الكود أعلاه ، قمت بإنشاء مسار طلب GET لعنوان URL /table، والتي ستطبع جدول الأوقات 2 على الشاشة.

الآن دعنا نرى نفس الكود ، مع تحديد معلمات الرقم الذي نريد جدول الضرب له:

Route::get('/table/{number}', function ($number) {
   for($i =1; $i <= 10 ; $i++){
       echo "$i * $number = ". $i* $number ."<br>";
   }   
});

في الكود "number"بين الأقواس يمثل المعلمة ، أي الرقم الذي سيتم حساب جدول الضرب من أجله. متى يتم تحديد عنوان URL من النوع /table/n، ثم سيتم طباعة جدول الأرقام n.

هناك أيضًا طريقة لدمج كلتا الميزتين في مسار واحد. يوفر Laravel ميزة المعلمات الاختيارية التي تتيح لك إضافة معاملات اختيارية باستخدام علامة الاستفهام "؟" بعد المعلمة الاختيارية والقيمة المسبقةdefiنيت. دعنا نرى المثال:

Route::get('/table/{number?}', function ($number = 2) {
   for($i =1; $i <= 10 ; $i++){
       echo "$i * $number = ". $i* $number ."<br>";
   }   
});

في الكود أعلاه ، أنشأنا معلمة المسار الخاصة بنا ، مما يجعل الرقم اختياريًا ، لذلك إذا كان المستخدم يوجه `/tableثم سيُنشئ جدول 2 افتراضيًاdefinite وإذا كان المستخدم يوجه إلى ``/table/{number}ثم جدول الأرقام 'number' سينتج.

التعبيرات العادية كقيود لمعلمات المسار

في المثال السابق أنشأنا مسارًا لإنشاء جدول الضرب ، ولكن كيف يمكننا التأكد من أن معلمة المسار هي رقم فعليًا ، لتجنب الأخطاء عند إنشاء جدول الضرب؟

في Laravel ، يمكنك ذلك defiحدد قيدًا على معلمة المسار باستخدام طريقة `where`على سبيل المثال الطريق. إن "where`يأخذ اسم المعلمة والتعبير العادي لتلك المعلمة.

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

الآن دعنا نرى مثالاً على قيد لـ `المعلمة{numero}للتأكد من تمرير رقم فقط إلى الوظيفة.

Route:: get ( '/table/{numero?}' , funzione ( $numero = 2 ) {    
   for( $i = 1 ; $i < = 10 ; $i + + ) {   
       echo "$i * $numero = " . $i * $numero . "<br>" ; 
   }   
} )->where( 'numero' , '[0-9]+' ) ;

في الكود أعلاه ، استخدمنا تعبيرًا عاديًا لرقم المسار. الآن ، إذا حاول المستخدم التوجيه إلى / الجدول / لا سيعرض استثناء NotFoundHttpException.

توجيه Laravel مع وظيفة التحكم

في Laravel ، يمكنك ذلك definish طريقة تحكم للطريق. تقوم طريقة التحكم بتنفيذ جميع الإجراءات definite في كل مرة يصل فيها المستخدم إلى المسار.
مع الكود التالي نقوم بتعيين طريقة تحكم 'functionname' إلى طريق:

Route:: get ( '/home' , 'YourController@functionname' ) ;

يبدأ الرمز بـ `Route::` ثم defiيشتمل على طريقة الطلب للمسار. تبعًا، defiقم بإنهاء المسار الخاص بك ووحدة التحكم مع الطريقة عن طريق إضافة الرمز @ قبل اسم الطريقة.

أعط المسار اسما

في Laravel ، يمكنك ذلك definish اسمًا لمسارك. غالبًا ما يكون هذا الاسم مفيدًا جدًا. على سبيل المثال ، إذا كنت تريد إعادة توجيه المستخدم من موقع إلى آخر ، فلا داعي لذلك definish عنوان URL الكامل لإعادة التوجيه. يمكنك فقط إعطاء اسمه. أنت تستطيع defiأدخل اسم المسار باستخدام الطريقةname`في حالة المسار.

Route::get('/table/{number?}', function ($number = 2) {
   for($i =1; $i <= 10 ; $i++){
       echo "$i * $number = ". $i* $number ."<br>";
   }   
})->where('number', '[0-9]+')->name(‘table’);

الآن ، يمكنني إعادة إنشاء عنوان url لهذا المسار ، من خلال الكود التالي:

$url = route('table');

وبالمثل ، لإعادة التوجيه إلى عنوان URL هذا ، فإن الصيغة الصحيحة ستكون:

return redirect()->route('table');

Route Groups

I Route Groups، مجموعات المسار حرفيًا ، ميزة أساسية في Laravel تسمح لك بتجميع المسارات. تكون مجموعات المسارات مفيدة عندما تريد تطبيق السمات على كل المسارات المجمعة. إذا كنت تستخدم مجموعات المسار ، فلن تضطر إلى تطبيق السمات بشكل فردي على كل مسار ؛ هذا يتجنب الازدواجية. يسمح لك بمشاركة سمات مثل middleware o namespacesبدون defiإنهاء هذه السمات على كل مسار فردي. يمكن تمرير هذه السمات المشتركة في تنسيق مصفوفة كمعامل أول للطريقة Route::group.

بناء جملة مجموعة الطريق

Route::group([], callback);  

حمامة []: هي مصفوفة تم تمريرها إلى طريقة المجموعة كمعامل أول.

مثال على Route Group في web.php

Route::group([], function()  
{  
   Route::get('/first' , function()  
   {  
      echo "first way route" ;   
   });  
   Route::get('/second' , function()  
   {  
      echo "second way route" ;   
   });  
   Route::get('/third' , function()  
   {  
      echo "third way route" ;   
   });  
});  

في الكود ، defiلنجد الطريقة مجموعة()، والتي تحتوي على المعلمتين ، أي array e closure. داخل closure، نستطيع defiكم عدد الانتهاء route نحن نريد. في الكود أعلاه ، لدينا defiأنهى الثلاثة route.

إذا وصلنا إلى عنوان URL عبر المتصفح localhost/myproject/first ثم يتدخل الأول route الكتابة في المتصفح first way route.

مع URL localhost/myproject/second ثم يأتي الثاني route الكتابة في المتصفح second way route.

بينما مع URL localhost/myproject/third ثم يأتي الثالث route الكتابة في المتصفح third way route.

بادئات Route Groups

البادئات route يتم استخدامها عندما نريد توفير بنية عنوان URL مشتركة بين العديد route.

يمكننا تحديد البادئة لجميع المسارات definites داخل المجموعة باستخدام خيار مصفوفة البادئة في Route Groups.

مثال على web.php

Route::group(['prefix' => 'movie'], function()  
{  
   Route::get('/godfather',function()  
   {  
     echo "Godfather casting";  
   });  
   Route::get('/pulpfiction',function()  
   {  
     echo "Pulp Fiction casting";  
   });  
   Route::get('/forrestgump',function()  
   {  
     echo "Forrest Gump casting";  
   });  
});  

يحتوي الرمز على ثلاثة مسارات يمكن الوصول إليها من عناوين URL التالية:

/movie/godfather  --->   Godfather casting

/movie/pulpfiction  --->   Pulp Fiction casting

/movie/forrestgump  --->   Forrest Gump casting

الوسيطة

يمكننا أيضًا تعيين برمجية وسيطة لجميع المسارات داخل المجموعة. يجب أن تكون البرامج الوسيطة defiانتهى قبل إنشاء المجموعة. لمعرفة كيفية القيام بذلك ، اقرأ مقالتنا برمجية Laravel الوسيطة كيف تعمل.

على سبيل المثال:

Route::middleware(['age'])->group( function()  
{  
  
   Route::get('/godfather',function()  
   {  
     echo "Godfather casting";  
   });  
   Route::get('/pulpfiction',function()  
   {  
     echo "Pulp Fiction casting";  
   });  
   Route::get('/forrestgump',function()  
   {  
     echo "Forrest Gump casting";  
   });  
  
});  

بادئات اسم المسار

الطريقة name يستخدم لبادئة كل اسم من route بسلسلة محددة. في الطريقة name، نحتاج إلى تحديد السلسلة ذات الحرف اللاحق في البادئة.

مثال web.php

Route::name('movie.')->group(function()  
{  
   Route::get('users', function()  
   {  
      return "movie.films";  
   })->name('films');  
});  

Ercole Palmeri

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

المقالات الأخيرة

يتميز Veeam بالدعم الأكثر شمولاً لبرامج الفدية، بدءًا من الحماية وحتى الاستجابة والاسترداد

سوف تستمر شركة Coveware by Veeam في تقديم خدمات الاستجابة لحوادث الابتزاز السيبراني. ستوفر Coveware إمكانات الطب الشرعي والمعالجة...

أبريل 23 2024

الثورة الخضراء والرقمية: كيف تعمل الصيانة التنبؤية على تغيير صناعة النفط والغاز

تُحدث الصيانة التنبؤية ثورة في قطاع النفط والغاز، من خلال اتباع نهج مبتكر واستباقي لإدارة المحطات.

أبريل 22 2024

منظم مكافحة الاحتكار في المملكة المتحدة يثير إنذار BigTech بشأن GenAI

أصدرت هيئة أسواق المال في المملكة المتحدة تحذيرًا بشأن سلوك شركات التكنولوجيا الكبرى في سوق الذكاء الاصطناعي. هناك…

أبريل 18 2024

كازا جرين: ثورة الطاقة من أجل مستقبل مستدام في إيطاليا

اختتم مرسوم "البيوت الخضراء"، الذي صاغه الاتحاد الأوروبي لتعزيز كفاءة استخدام الطاقة في المباني، عمليته التشريعية مع…

أبريل 18 2024

اقرأ الابتكار بلغتك

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

تابعنا