المسار هو طريقة لإنشاء عنوان 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 هي 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.php
` o `api.php
` ) وابدأ سطر التعليمات البرمجية بـ `Route:: `
، متبوعًا بالطلب الذي تريد تعيينه لهذا المسار المحدد ثم حدد الوظيفة التي سيتم تنفيذها بعد الطلب.
يقدم Laravel توابع المسار التالية:
get
post
put
delete
patch
options
المسارات defined في Laravel داخل صنف المسار مع HTTP ، مسار الرد والإغلاق ، أو وحدة التحكم.
لنرى كيف يمكنك إنشاء مساراتك الخاصة في Laravel.
سأقوم الآن بإنشاء مسار أساسي يطبع جدول الضرب 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 ، يمكنك ذلك 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
سوف تستمر شركة Coveware by Veeam في تقديم خدمات الاستجابة لحوادث الابتزاز السيبراني. ستوفر Coveware إمكانات الطب الشرعي والمعالجة...
تُحدث الصيانة التنبؤية ثورة في قطاع النفط والغاز، من خلال اتباع نهج مبتكر واستباقي لإدارة المحطات.
أصدرت هيئة أسواق المال في المملكة المتحدة تحذيرًا بشأن سلوك شركات التكنولوجيا الكبرى في سوق الذكاء الاصطناعي. هناك…
اختتم مرسوم "البيوت الخضراء"، الذي صاغه الاتحاد الأوروبي لتعزيز كفاءة استخدام الطاقة في المباني، عمليته التشريعية مع…