بیشتر

لارویل: د لارویل لارینګ پیژندنه

په لاراویل کې روټینګ کاروونکو ته اجازه ورکوي چې د غوښتنلیک ټولې غوښتنې مناسب کنټرولر ته ورسوي. په لارویل کې ډیری لومړني لارې د بندیدو سره یونیفورم اثاثې پیژندونکی پیژني او مني ، د لارې کولو ساده او څرګند لاره چمتو کوي.

لاره (روټ) څه شی دی؟

لاره ستاسو د غوښتنلیک لپاره د غوښتنې URL رامینځته کولو لاره ده. دا URLs ته اړتیا نلري چې په ویب پاڼه کې د ځانګړو فایلونو سره تړاو ولري او د انسان لوستلو وړ او SEO دوستانه دي.

په لارویل کې، لارې د فولډر دننه رامینځته کیږي routes. دوی په فایل کې رامینځته شوي web.php د ویب پاڼو لپاره، او دننه api.php د APIs لپاره.

دا route ډلې ته ګمارل شوي دي middleware شبکه، د ناستې وضعیت او امنیت روښانه کول CSRF. په لاره کې route/api.php دوی بې ریاسته دي او د API منځني ګروپ ته ګمارل شوي.
د مخکې نصبdefiLaravel nita د دوو لارو سره راځي، یو د ویب لپاره او بل د API لپاره. دا هغه څه دي چې د ویب لپاره لاره ورته ښکاري web.php:

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

په لارویل کې لاره څه ده؟

د لارویل ټولې لارې دي definiti د لار فایلونو کې چې په لارښود کې موقعیت لري 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 a سره کار مینځور کوم چې د دې تصدیق کولو دنده لري چې ایا د پیرودونکي غوښتنلیک تایید شوی یا نه. په هغه صورت کې چې پیرودونکي تایید شوي وي، بیا د کور پاڼې یا د ننوتلو پاڼې ته الرښوونه کوي.

لپاره میتودونه route

پخوانی کوډ defiد کور پاڼې ته لاره نښی. هرکله چې دا لاره غوښتنه ترلاسه کړي get په سلو کې /، بیرته به راګرځي view welcome

د لارویل ټولې لارې دي definiti ستاسو په routing، کوم چې د ډایرکټر dei دننه موقعیت لري routes. په پایله کې، l'AppProvidersRouteServiceProvider د غوښتنلیک لیکونه دا ریکارډونه پورته کوي. دوسيه route/web.php هغه لارې لري چې ستاسو د ویب انٹرفیس لپاره اداره کیږي.

د لارې جوړښت خورا ساده دی. مناسب فایل خلاص کړئ (`web.phpo `api.php) او د کوډ لاین ورسره پیل کړئ `Route:: `، د هغه غوښتنې په تعقیب چې تاسو غواړئ هغه ځانګړي لارې ته وټاکئ او بیا هغه فعالیت مشخص کړئ چې د غوښتنې وروسته به ترسره شي.

Laravel لاندې لارې میتودونه وړاندې کوي:

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

لارې دي defiپه لاراول کې د HTTP سره د روټ ټولګي دننه، د ځواب ورکولو لاره او تړل، یا کنټرولر.

په لارویل کې د لارې رامینځته کولو څرنګوالی

راځئ وګورو چې تاسو څنګه کولی شئ په لارویل کې خپلې لارې جوړې کړئ.

د 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د منحلاتو ترمنځ د پیرامیټر استازیتوب کوي، د بیلګې په توګه هغه شمیره چې د ضرب جدول به محاسبه شي. هرکله چې د ډول یو URL مشخص شي /table/n، بیا به د شمیر جدول چاپ شي n.

په یوه لاره کې د دواړو ځانګړتیاوو د یوځای کولو لاره هم شتون لري. لاراویل د اختیاري پیرامیټونو ځانګړتیا وړاندې کوي کوم چې تاسو ته اجازه درکوي اختیاري پیرامیټونه د پوښتنې نښه '؟' په کارولو سره اضافه کړئ. د اختیاري پیرامیټر او مخکې ارزښت وروسته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د خپلې لارې لپاره نوم ولیکئ. دا نوم اکثرا ډیر ګټور دی. د مثال په توګه، که تاسو غواړئ یو کارن له یو ځای څخه بل ځای ته واستوئ، تاسو اړتیا نلرئ defiبشپړ ریډیریټ URL nish. تاسو کولی شئ یوازې د هغه نوم ورکړئ. تاسو یې کولای شئ defiد لارې نوم د ` میتود په کارولو سره nish کړئ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، په لفظي ډول د لارې ګروپونه په لارویل کې یو لازمي ځانګړتیا ده ، کوم چې تاسو ته اجازه درکوي لارې ګروپ کړئ. د لارې ګروپونه ګټور دي کله چې تاسو غواړئ په ټولو ګروپي لارو کې ځانګړتیاوې پلي کړئ. که تاسو د لارې ګروپونه کاروئ، تاسو اړتیا نلرئ په هره لاره کې په انفرادي ډول ځانګړتیاوې پلي کړئ؛ دا د نقل څخه مخنیوی کوي. دا تاسو ته اجازه درکوي چې ځانګړتیاوې شریک کړئ لکه 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 دوی کارول کیږي کله چې موږ غواړو د یو آر ایل جوړښت چمتو کړو چې څو ته عام وي route.

موږ کولی شو د ټولو لارو لپاره مخکینی مشخص کړو defiپه ګروپ کې د مخکینۍ سرې اختیار په کارولو سره nites 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

د نوښت خبر پاڼه
د نوښت په اړه خورا مهم خبرونه له لاسه مه ورکوئ. د بریښنالیک له لارې دوی ترلاسه کولو لپاره لاسلیک وکړئ.

وروستي مقالې

راتلونکی دلته دی: د بار وړلو صنعت څنګه د نړیوال اقتصاد انقلاب کوي

سمندري سکتور یو ریښتینی نړیوال اقتصادي ځواک دی ، کوم چې د 150 ملیارد بازار په لور حرکت کړی ...

1 د 2024 ماین

خپرونکي او OpenAI تړونونه لاسلیک کوي ترڅو د مصنوعي استخباراتو لخوا پروسس شوي معلوماتو جریان تنظیم کړي

تیره دوشنبه، فایننشل ټایمز د OpenAI سره یوه معامله اعلان کړه. FT د نړۍ په کچه ژورنالیزم جواز ورکوي ...

30 اپریل 2024

آنلاین تادیات: دلته د سټیمینګ خدمات تاسو ته د تل لپاره تادیه کوي

ملیونونه خلک د سټیمینګ خدماتو لپاره تادیه کوي ، د میاشتنۍ ګډون فیس ورکوي. دا عام نظر دی چې تاسو…

29 اپریل 2024

Veeam د ransomware لپاره خورا پراخه ملاتړ وړاندې کوي ، له محافظت څخه تر غبرګون او رغیدو پورې

د Veeam لخوا Coveware به د سایبر غصب پیښو غبرګون خدماتو چمتو کولو ته دوام ورکړي. Coveware به د عدلي او درملنې وړتیاوې وړاندې کړي ...

23 اپریل 2024

نوښت په خپله ژبه ولولئ

د نوښت خبر پاڼه
د نوښت په اړه خورا مهم خبرونه له لاسه مه ورکوئ. د بریښنالیک له لارې دوی ترلاسه کولو لپاره لاسلیک وکړئ.

مونږ سره په