Artikuj

Laravel: hyrje në drejtimin e laravel

Rutimi në Laravel i lejon përdoruesit të drejtojnë të gjitha kërkesat e aplikacionit në kontrolluesin e duhur. Shumica e rrugëve kryesore në Laravel njohin dhe pranojnë një identifikues Uniform Asset së bashku me një mbyllje, duke ofruar një mënyrë të thjeshtë dhe ekspresive të rrugëtimit.

Çfarë është një rrugë (rrugë)?

Rruga është një mënyrë për të krijuar një URL kërkese për aplikacionin tuaj. Këto URL nuk kanë nevojë të lidhen me skedarë specifikë në një faqe interneti dhe janë të lexueshme nga njeriu dhe miqësore me SEO.

Në Laravel, shtigjet krijohen brenda dosjes le routes. Ato janë krijuar në skedar web.php për faqet e internetit, dhe brenda api.php për API-të.

Këto route janë caktuar në grup middleware rrjet, duke theksuar statusin dhe sigurinë e sesionit CSRF. Rrugët në route/api.php ata janë pa shtetësi dhe i caktohen grupit të programeve të mesme API.
Para-instalimidefiLaravel nita vjen me dy shtigje, njëra për ueb dhe tjetra për API. Kështu duket rruga për ueb në web.php:

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

Cila është një rrugë në Laravel?

Të gjitha shtigjet e Laravel janë definiti në skedarët e rrugës që ndodhen brenda drejtorisë routes. Aplikacioni i menaxhimit të rrugës, defitë përfunduara në dosje App\Providers\RouteServiceProvider, kujdeset për rreshtimin automatik të këtyre skedarëve. Dosja route/web.php defihap shtigjet për ndërfaqen tuaj të internetit.

Eshte e mundur defivendos një shteg për këtë veprim të kontrolluesit si më poshtë:

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

Route::resource: metoda Route::resource prodhon të gjitha shtigjet bazë të kërkuara për një aplikacion dhe menaxhohet përmes klasës së kontrolluesit.

Kur një kërkesë përputhet me URI të rrugës së specifikuar, thirret metoda show defipërfunduar në kontrollues App\Http\ControllersUserController, duke kaluar parametrat e rrugës në metodë.

Për burimet, duhet të bëni dy gjëra në aplikacion Laravel. Së pari, duhet të krijoni një shteg burimi Laravel që ofron shtigjet e futjes, përditësimit, shikimit dhe fshirjes. Së dyti, krijoni një kontrollues burimesh që ofron një metodë për futjen, përditësimin, shikimin dhe fshirjen.

Para-instalimidefiLaravel nita vjen me dy shtigje: një për ueb dhe një për API. Ja se si duket rruga për në ueb në web.php:

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

return view(‘welcome’);

});

Laravel Middleware vepron si urë lidhëse ndërmjet kërkesës dhe reagimit. Mund të jetë një lloj komponenti filtri.

Laravel punoni me a middleware e cila ka për detyrë të konfirmojë nëse aplikacioni i klientit është i verifikuar apo jo. Në rast se klienti konfirmohet, atëherë rutimi ridrejtohet në faqen kryesore ose në një faqe identifikimi.

Metodat për route

Kodi i mëparshëm defihap një rrugë për në faqen kryesore. Sa herë që kjo rrugë merr një kërkesë get për /, do të kthejë view welcome

Të gjitha shtigjet e Laravel janë definiti në tuajën routing, të cilat ndodhen brenda drejtorisë dei routes. Rrjedhimisht, l'AppProvidersRouteServiceProvider të aplikacionit rreshton këto të dhëna. Dosja route/web.php përmban rrugët që menaxhohen për ndërfaqen tuaj të internetit.

Struktura e rrugës është shumë e thjeshtë. Hapni skedarin e duhur (`web.phpo `api.php) dhe filloni linjën e kodit me `Route:: `, e ndjekur nga kërkesa që dëshironi të caktoni në atë rrugë specifike dhe më pas specifikoni funksionin që do të kryhet pas kërkesës.

Laravel ofron metodat e mëposhtme të rrugës:

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

Shtigjet janë defie vendosur në Laravel brenda klasës Route me HTTP, rrugës për t'u përgjigjur dhe mbyllje, ose kontrolluesin.

Si të krijoni shtigje në Laravel

Le të shohim se si mund të krijoni shtigjet tuaja në Laravel.

Një rrugë bazë GET

Tani unë do të krijoj një shteg bazë që do të printojë tabelën e kohës me 2.

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

Në kodin e mësipërm, kam krijuar një shteg të kërkesës GET për URL-në /table, i cili do të printojë tabelën e kohrave prej 2 në ekran.

Tani le të shohim të njëjtin kod, duke parametrizuar numrin për të cilin duam tabelën e shumëzimit:

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

Në kodin 'number' ndërmjet kllapave paraqet parametrin, pra numrin për të cilin do të llogaritet tabela e shumëzimit. Sa herë që specifikohet një URL e llojit /table/n, atëherë do të printohet tabela e numrave n.

Ekziston edhe mënyra për të kombinuar të dyja veçoritë në një rrugë. Laravel ofron veçorinë e parametrave opsionalë që ju lejon të shtoni parametra opsionalë duke përdorur pikëpyetjen '?' pas parametrit opsional dhe vlerës paraprakedefinatën. Le të shohim shembullin:

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

Në kodin e mësipërm ne krijuam parametrin tonë të rrugës, duke e bërë numrin opsional, kështu që nëse një përdorues drejton `/table` atëherë do të gjenerojë tabelën e 2 si parazgjedhjedefinite dhe nëse një përdorues drejton në `/table/{number}Pastaj tabela e numrave 'number' do të prodhohet.

Shprehjet e rregullta si kufizime për parametrat e rrugës

Në shembullin e mëparshëm krijuam një shteg për gjenerimin e tabelës së shumëzimit, por si mund të sigurohemi që parametri i shtegut të jetë në të vërtetë një numër, për të shmangur gabimet gjatë gjenerimit të tabelës së shumëzimit?

Në Laravel, mundeni defivendos një kufizim në parametrin e rrugës duke përdorur metodën `where` në shembullin e rrugës. 'where` merr emrin e parametrit dhe një shprehje të rregullt për atë parametër.

Buletini i inovacionit
Mos humbisni lajmet më të rëndësishme mbi inovacionin. Regjistrohuni për t'i marrë ato me email.

Tani le të shohim një shembull të një kufizimi për parametrin tonë `{numero}` për t'u siguruar që vetëm një numër i kalohet funksionit.

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

Në kodin e mësipërm, kemi përdorur një shprehje të rregullt për numrin e shtegut. Tani, nëse një përdorues përpiqet të kalojë drejt /tabela/nr do të shfaqet një përjashtim NotFoundHttpException.

Laravel Routing me funksion kontrolli

Në Laravel, mundeni definish një metodë kontrolluesi për një rrugë. Një metodë kontrolluesi kryen të gjitha veprimet definite sa herë që një përdorues hyn në itinerar.
Me kodin e mëposhtëm po caktojmë metodën e kontrolluesit 'functionname' në një rrugë:

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

Kodi fillon me `Route::` dhe për këtë arsye defivendos metodën e kërkesës për shtegun. Më pas, defiPërfundoni rrugën dhe kontrolluesin tuaj së bashku me metodën duke shtuar simbolin @ përpara emrit të metodës.

Jepini një emër shtegut

Në Laravel, mundeni defijepni një emër për rrugën tuaj. Ky emër është shpesh shumë i dobishëm. Për shembull, nëse dëshironi të ridrejtoni një përdorues nga një vend në tjetrin, nuk keni pse definish URL-në e plotë të ridrejtimit. Mund të jepni vetëm emrin e tij. Ti mundesh defishënoni emrin e rrugës duke përdorur metodën `name` në shembullin e rrugës.

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’);

Tani, unë mund të rigjeneroj url-në për këtë shteg, përmes kodit të mëposhtëm:

$url = route('table');

Në mënyrë të ngjashme, për ridrejtimin në këtë URL, sintaksa e saktë do të ishte:

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

Route Groups

I Route Groups, fjalë për fjalë grupet e shtigjeve, është një veçori thelbësore në Laravel, e cila ju lejon të gruponi shtigjet. Grupet e shtigjeve janë të dobishme kur dëshironi të aplikoni atribute në të gjitha shtigjet e grupuara. Nëse përdorni grupet e shtigjeve, nuk keni pse t'i aplikoni atributet individualisht në secilën shteg; kjo shmang dyfishimin. Kjo ju lejon të ndani atribute si middleware o namespaces, pa defipërfundoni këto atribute në çdo shteg individual. Këto atribute të përbashkëta mund të kalohen në një format grupi si parametri i parë në metodë Route::group.

Sintaksa e një grupi rrugësh

Route::group([], callback);  

pëllumb []: është një grup i kaluar në metodën e grupit si parametër i parë.

Shembull i Route Groupweb.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" ;   
   });  
});  

Në kod, defile të gjejmë metodën grup (), i cili përmban dy parametrat, d.m.th array e closure. Brenda në closure, Ne mundemi defipërfundoni sa route ne duam. Në kodin e mësipërm kemi defimbaruar tre route.

Nëse nëpërmjet shfletuesit ne aksesojmë URL-në localhost/myproject/first atëherë ndërhyn i pari route duke shtypur në shfletues first way route.

Me URL-në localhost/myproject/second pastaj vjen e dyta route duke shtypur në shfletues second way route.

Ndërsa me URL-në localhost/myproject/third pastaj vjen e treta route duke shtypur në shfletues third way route.

Parashtesa të Route Groups

Parashtesat e route ato përdoren kur duam të ofrojmë një strukturë URL të përbashkët për shumëfish route.

Ne mund të specifikojmë prefiksin për të gjitha shtigjet definites brenda grupit duke përdorur opsionin e vargut prefiks në Route Groups.

Shembull i 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";  
   });  
});  

Kodi përmban tre shtigje që mund të aksesohen nga URL-të e mëposhtme:

/movie/godfather  --->   Godfather casting

/movie/pulpfiction  --->   Pulp Fiction casting

/movie/forrestgump  --->   Forrest Gump casting

middleware

Ne gjithashtu mund të caktojmë programin e mesëm për të gjitha rrugët brenda një grupi. Midware duhet të jetë defipërfunduar përpara krijimit të grupit. Për të parë se si ta bëni këtë, lexoni artikullin tonë Si funksionon Laravel Middleware.

shembull:

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";  
   });  
  
});  

Prefikset e emrave të rrugës

Metoda name përdoret për të prefiksuar çdo emër të route me një varg të caktuar. Në metodën name, duhet të specifikojmë vargun me një karakter pasues në parashtesë.

shembull web.php

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

Ercole Palmeri

Buletini i inovacionit
Mos humbisni lajmet më të rëndësishme mbi inovacionin. Regjistrohuni për t'i marrë ato me email.

Artikujt e fundit

Rregullatori antitrust në Mbretërinë e Bashkuar ngre alarmin e BigTech mbi GenAI

CMA e Mbretërisë së Bashkuar ka lëshuar një paralajmërim për sjelljen e Big Tech në tregun e inteligjencës artificiale. Aty…

18 Prill 2024

Casa Green: revolucion energjetik për një të ardhme të qëndrueshme në Itali

Dekreti "Case Green", i formuluar nga Bashkimi Evropian për të rritur efiçencën energjetike të ndërtesave, ka përfunduar procesin e tij legjislativ me…

18 Prill 2024

Tregtia elektronike në Itali në +27% sipas Raportit të ri nga Casaleggio Associati

Prezantohet raporti vjetor i Casaleggio Associati mbi tregtinë elektronike në Itali. Raporti i titulluar “AI-Commerce: kufijtë e tregtisë elektronike me inteligjencën artificiale”.…

17 Prill 2024

Ideja brilante: Bandalux prezanton Airpure®, perden që pastron ajrin

Rezultat i inovacionit të vazhdueshëm teknologjik dhe i përkushtimit ndaj mjedisit dhe mirëqenies së njerëzve. Bandalux prezanton Airpure®, një tendë…

12 Prill 2024