مقالات

Laravel: Laravel رستي جو تعارف

Laravel ۾ روٽنگ صارفين کي سڀني ايپليڪيشنن جي درخواستن کي مناسب ڪنٽرولر ڏانهن رستو ڏيڻ جي اجازت ڏئي ٿي. Laravel ۾ اڪثر پرائمري رستا بندش سان گڏ يونيفارم اثاثن جي سڃاڻپ ڪندڙ کي سڃاڻن ٿا ۽ قبول ڪن ٿا، روٽنگ جو هڪ سادو ۽ اظهار ڪندڙ طريقو مهيا ڪن ٿا.

رستو (رستو) ڇا آهي؟

رستو ھڪڙو طريقو آھي توھان جي ايپليڪيشن لاءِ درخواست URL ٺاھيو. اهي URLs ويب سائيٽ تي مخصوص فائلن سان لاڳاپيل هجڻ جي ضرورت ناهي ۽ انسان پڙهڻ لائق ۽ ايس اي او دوستانه آهن.

Laravel ۾، رستا لي فولڊر اندر ٺاهيا ويا آهن routes. اهي فائل ۾ ٺاهيا ويا آهن web.php ويب سائيٽن لاء، ۽ اندر api.php APIs لاءِ.

هنن route گروپ کي مقرر ڪيو ويو آهي middleware نيٽ ورڪ، نمايان ڪرڻ سيشن جي حيثيت ۽ سيڪيورٽي CSRF. ۾ رستا route/api.php اهي بي رياست آهن ۽ API مڊل ويئر گروپ کي لڳايو ويو آهي.
قبل از انسٽاليشنdefiLaravel nita ٻن رستن سان گڏ اچي ٿو، ھڪڙو ويب لاء ۽ ھڪڙو API لاء. هي اهو آهي جيڪو ويب لاءِ رستو ڏسڻ ۾ اچي ٿو web.php:

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

Laravel ۾ رستو ڇا آهي؟

سڀ Laravel رستا آهن definiti ڊاريڪٽري ۾ واقع path فائلن ۾ routes. رستي جي انتظام جي درخواست، defiفائل ۾ داخل App\Providers\RouteServiceProvider، انهن فائلن کي خودڪار طريقي سان ترتيب ڏيڻ جو خيال رکندو آهي. فائيل route/web.php defiتوھان جي ويب انٽرفيس لاءِ رستا ٺاھي ٿو.

اهو ممڪن آهي defiھن ڪنٽرولر جي عمل لاء ھڪڙو رستو ھيٺ ڏنل آھي:

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

Route::resource: طريقو Route::resource ايپليڪيشن لاءِ گهربل سڀ بنيادي رستا پيدا ڪري ٿو ۽ ڪنٽرولر ڪلاس ذريعي منظم ڪيو وڃي ٿو.

جڏهن هڪ درخواست مخصوص رستي سان ملي ٿي URI، طريقو سڏيو ويندو آهي show defiڪنٽرولر ۾ ختم App\Http\ControllersUserController, رستي جي پيراگراف کي پاس ڪرڻ جو طريقو.

وسيلن لاء، توهان کي اپليڪيشن تي ٻه شيون ڪرڻ جي ضرورت آهي Laravel. پهرين، توهان کي هڪ وسيلن جو رستو ٺاهڻ جي ضرورت آهي Laravel جيڪو رستا داخل ڪرڻ، اپڊيٽ ڪرڻ، ڏسڻ ۽ حذف ڪرڻ مهيا ڪري ٿو. ٻيو، هڪ ريسورس ڪنٽرولر ٺاهيو جيڪو هڪ طريقو مهيا ڪري ٿو داخل ڪرڻ، اپڊيٽ ڪرڻ، ڏسڻ، ۽ حذف ڪرڻ.

قبل از انسٽاليشنdefiLaravel nita ٻن رستن سان گڏ اچي ٿو: ھڪڙو ويب لاءِ ۽ ھڪڙو API لاءِ. ھتي آھي ويب جو رستو web.php ۾ جھڙو نظر اچي ٿو:

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

return view(‘welcome’);

});

Laravel Middleware درخواست ۽ ردعمل جي وچ ۾ پل جي طور تي ڪم ڪري ٿو. اهو ڪجهه قسم جو فلٽر جزو ٿي سگهي ٿو.

Laravel هڪ سان ڪم وچولوجير جنهن کي تصديق ڪرڻ جو ڪم آهي ته ڪلائنٽ جي درخواست جي تصديق ٿيل آهي يا نه. جي صورت ۾ ڪلائنٽ جي تصديق ڪئي وئي آهي، پوء روٽنگ ريڊائريڪٽ هوم پيج يا لاگ ان پيج ڏانهن.

لاء طريقا route

اڳوڻو ڪوڊ defiهوم پيج ڏانهن رستو ڏيکاري ٿو. جڏهن ته هن واٽ هڪ درخواست حاصل ڪري get في /، واپس ڪندو view welcome

سڀ Laravel رستا آهن definiti توهان ۾ routing، جيڪي ڊاريڪٽري جي اندر واقع آهن dei routes. نتيجي طور، l'AppProvidersRouteServiceProvider ايپليڪيشن لائنن جي انهن رڪارڊن کي. فائيل route/web.php انھن رستن تي مشتمل آھي جيڪي توھان جي ويب انٽرفيس لاءِ منظم ٿيل آھن.

رستي جي جوڙجڪ بلڪل سادي آهي. مناسب فائل کوليو (`web.phpo `api.php) ۽ ڪوڊ جي لائن سان شروع ڪريو `Route:: `، جنهن جي پٺيان توهان درخواست ڪرڻ چاهيو ٿا انهي مخصوص رستي کي تفويض ڪريو ۽ پوءِ وضاحت ڪريو فنڪشن جيڪا درخواست جي پٺيان ڪئي ويندي.

Laravel پيش ڪري ٿو ھيٺ ڏنل رستو طريقا:

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

رستا آهن definited in Laravel اندر روٽ ڪلاس ۾ HTTP سان، جواب ڏيڻ جو رستو ۽ بند ڪرڻ، يا ڪنٽرولر.

Laravel ۾ رستا ڪيئن ٺاھيو

اچو ته ڏسو ته توهان Laravel ۾ پنهنجا پنهنجا رستا ڪيئن ٺاهي سگهو ٿا.

هڪ بنيادي GET رستو

هاڻي مان هڪ بنيادي رستو ٺاهي رهيو آهيان جيڪو 2 جي ٽائم ٽيبل کي پرنٽ ڪندو.

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

مٿي ڏنل ڪوڊ ۾، مون URL لاءِ GET درخواست جو رستو ٺاهيو /table، جيڪو اسڪرين تي 2 جي ٽائم ٽيبل کي پرنٽ ڪندو.

ھاڻي اچو ته اھو ساڳيو ڪوڊ ڏسون، ان نمبر کي پيٽرولائيز ڪري، جنھن لاءِ اسين ضرب جدول گھرون ٿا:

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

ڪوڊ ۾ 'number' braces جي وچ ۾ پيراميٽر جي نمائندگي ڪري ٿو، يعني اهو انگ جنهن لاءِ ضرب جدول کي ڳڻيو ويندو. جڏهن ته قسم جو 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 ۾، توهان ڪري سگهو ٿا defiرستي لاءِ ڪنٽرولر جو طريقو. هڪ ڪنٽرولر طريقو سڀني عملن کي انجام ڏئي ٿو definite هر وقت هڪ صارف رستي تائين رسائي ڪري ٿو.
هيٺ ڏنل ڪوڊ سان اسان ڪنٽرولر جو طريقو تفويض ڪري رهيا آهيون 'functionname' رستي ڏانهن:

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

ڪوڊ سان شروع ٿئي ٿو `Route::` ۽ تنهن ڪري defiرستي جي درخواست جي طريقي کي ختم ڪري ٿو. بعد ۾، defiپنھنجي رستي ۽ ڪنٽرولر کي ختم ڪريو طريقي سان گڏ @ علامت کي شامل ڪندي طريقي جي نالي کان اڳ.

رستي کي نالو ڏيو

Laravel ۾، توهان ڪري سگهو ٿا defiتوھان جي رستي لاء ھڪڙو نالو ڏيو. هي نالو اڪثر ڪري مفيد آهي. مثال طور، جيڪڏھن توھان چاھيو ٿا ھڪڙي صارف کي ھڪڙي جڳھ کان ٻئي ڏانھن ڏانھن، توھان کي ڪرڻ جي ضرورت نه آھي 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 = 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 گروپ اندر prefix array آپشن in استعمال ڪندي 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";  
   });  
});  

ڪوڊ ۾ ٽي رستا شامل آھن جيڪي ھيٺين URLs مان رسائي سگھجن ٿيون:

/movie/godfather  --->   Godfather casting

/movie/pulpfiction  --->   Pulp Fiction casting

/movie/forrestgump  --->   Forrest Gump casting

وچويئر

اسان هڪ گروپ جي اندر سڀني رستن تي مڊل ويئر پڻ تفويض ڪري سگهون ٿا. مڊل ويئر هجڻ گهرجي defiگروپ ٺاهڻ کان اڳ ختم ڪيو. ڏسڻ لاء اهو ڪيئن ڪجي، اسان جو مضمون پڙهو Laravel Middleware اهو ڪيئن ڪم ڪري ٿو.

مثال طور:

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

جدت نيوز ليٽر
جدت تي سڀ کان اهم خبر نه وڃايو. انهن کي اي ميل ذريعي حاصل ڪرڻ لاء سائن اپ ڪريو.

تازيون مضمونون

ٻارن لاءِ رنگين صفحن جا فائدا - سڀني عمرن لاءِ جادوءَ جي دنيا

رنگ سازي ذريعي سٺي موٽر صلاحيتن کي ترقي ڪرڻ ٻارن کي وڌيڪ پيچيده صلاحيتن لاء تيار ڪري ٿو جهڙوڪ لکڻ. رنگ ڏيڻ…

2 2024

مستقبل هتي آهي: ڪيئن شپنگ انڊسٽري عالمي معيشت ۾ انقلاب آڻيندي آهي

بحري شعبي هڪ حقيقي عالمي معاشي طاقت آهي، جيڪا 150 بلين مارڪيٽ جي طرف نيويگيٽ ڪئي آهي ...

1 2024

پبلشرز ۽ OpenAI مصنوعي ذهانت پاران پروسيس ڪيل معلومات جي وهڪري کي منظم ڪرڻ لاءِ معاهدن تي دستخط ڪن ٿا

گذريل سومر، فنانشل ٽائمز OpenAI سان هڪ ڊيل جو اعلان ڪيو. ايف ٽي پنهنجي عالمي سطح جي صحافت کي لائسنس ڏئي ٿو ...

30 اپريل 2024

آن لائين ادائگيون: ھتي آھي ڪيئن اسٽريمنگ سروسز توھان کي ھميشه لاءِ ادا ڪنديون آھن

لکين ماڻهو ادا ڪن ٿا اسٽريمنگ سروسز لاءِ، ادا ڪندا مھينا سبسڪرپشن فيس. اها عام راءِ آهي ته توهان…

29 اپريل 2024

پنھنجي ٻوليءَ ۾ جدت پڙھو

جدت نيوز ليٽر
جدت تي سڀ کان اهم خبر نه وڃايو. انهن کي اي ميل ذريعي حاصل ڪرڻ لاء سائن اپ ڪريو.

اسان جي تابعداري ڪريو