Članci

Laravel: uvod u laravel rutiranje

Usmjeravanje u Laravel-u omogućava korisnicima da usmjere sve zahtjeve aplikacije do odgovarajućeg kontrolera. Većina primarnih ruta u Laravel-u prepoznaje i prihvata jedinstveni identifikator imovine zajedno sa zatvaranjem, pružajući jednostavan i ekspresivan način rutiranja.

Šta je ruta (ruta)?

Putanja je način da kreirate URL zahtjeva za vašu aplikaciju. Ovi URL-ovi ne moraju biti povezani s određenim datotekama na web stranici i čitljivi su ljudima i prilagođeni SEO-u.

U Laravelu, staze se kreiraju unutar le foldera routes. Oni se kreiraju u datoteci web.php za web stranice i unutar api.php za API-je.

Ove route su dodijeljeni grupi middleware mreže, naglašavajući status i sigurnost sesije CSRF. Rute u route/api.php oni su bez stanja i dodijeljeni su grupi API međuoprema.
PredinstalacijadefiLaravel nita dolazi sa dva puta, jednim za web i jednim za API. Ovako izgleda put za web u web.php:

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

Koja je ruta u Laravelu?

Sve Laravel putanje su definiti u datotekama putanja koje se nalaze unutar direktorija routes. Aplikacija za upravljanje rutama, defizavršeno u fajlu App\Providers\RouteServiceProvider, brine o automatskom poređanju ovih datoteka. Fajl route/web.php defizavršava putanje za vaš web interfejs.

È moguće defizavršiti putanju za ovu radnju kontrolera na sljedeći način:

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

Route::resource: metoda Route::resource proizvodi sve osnovne staze potrebne za aplikaciju i njime se upravlja kroz klasu kontrolera.

Kada se zahtjev podudara sa specificiranim URI-jem rute, poziva se metoda show defizavršeno u kontroleru App\Http\ControllersUserController, prosljeđivanje parametara rute metodi.

Za resurse, trebate učiniti dvije stvari na aplikaciji Laravel. Prvo morate kreirati putanju resursa Laravel koji omogućava umetanje, ažuriranje, pregled i brisanje staza. Drugo, kreirajte kontroler resursa koji pruža metodu za umetanje, ažuriranje, pregledavanje i brisanje.

PredinstalacijadefiLaravel nita dolazi sa dva puta: jedan za web i jedan za API. Evo kako ruta do weba izgleda u web.php:

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

return view(‘welcome’);

});

Laravel Middleware djeluje kao most između zahtjeva i reakcije. To može biti neka vrsta komponente filtera.

Laravel rad sa a midware koja ima zadatak da potvrdi da li je klijentska aplikacija verifikovana ili ne. U slučaju da je klijent potvrđen, rutiranje preusmjerava na početnu stranicu ili stranicu za prijavu.

Metode za route

Prethodni kod defizavršava put do početne stranice. Kad god ova staza primi zahtjev get po /, će vratiti view welcome

Sve Laravel putanje su definiti u vašem routing, koji se nalaze unutar direktorija dei routes. shodno tome, l'AppProvidersRouteServiceProvider aplikacije poravnava ove zapise. Fajl route/web.php sadrži rute kojima se upravlja za vaše web sučelje.

Struktura staze je vrlo jednostavna. Otvorite odgovarajući fajl (`web.phpo `api.php) i započnite red koda sa `Route:: `, nakon čega slijedi zahtjev koji želite dodijeliti toj specifičnoj ruti, a zatim navedite funkciju koja će se izvršiti nakon zahtjeva.

Laravel nudi sljedeće metode puta:

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

Staze su defiuneto u Laravel unutar klase Route sa HTTP-om, rutom za odgovor i zatvaranjem, ili kontrolerom.

Kako kreirati putanje u Laravel-u

Hajde da vidimo kako možete kreirati sopstvene staze u Laravelu.

Osnovna GET putanja

Sada ću kreirati osnovnu putanju koja će ispisati tablicu vremena od 2.

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

U gornjem kodu, kreirao sam GET putanju zahtjeva za URL /table, koji će ispisati tablicu vremena od 2 na ekranu.

Sada da vidimo isti kod, parametrizirajući broj za koji želimo tablicu množenja:

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

U kodu 'number' između zagrada predstavlja parametar, odnosno broj za koji će se izračunati tablica množenja. Kad god je naveden URL tog tipa /table/n, tada će tabela brojeva biti odštampana n.

Postoji i način da se obje karakteristike kombinuju na jednom putu. Laravel nudi opciju opcionih parametara koja vam omogućava da dodate opcione parametre pomoću upitnika '?' nakon opcionog parametra i pre vrijednostidefinite. Pogledajmo primjer:

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

U kodu iznad kreirali smo parametar rute, čineći broj opcionalnim, tako da ako korisnik usmjerava `/table` tada će po defaultu generirati tablicu 2definite i ako korisnik usmjeri na `/table/{number}Zatim tabela brojeva 'number' će se proizvoditi.

Regularni izrazi kao ograničenja za parametre rute

U prethodnom primjeru kreirali smo putanju za generiranje tablice množenja, ali kako možemo osigurati da je parametar putanje zapravo broj, kako bismo izbjegli greške pri generiranju tablice množenja?

U Laravelu možete defizavršiti ograničenje na parametar rute pomoću metode `where` na instanci rute. The `where` uzima ime parametra i regularni izraz za taj parametar.

Inovacijski bilten
Ne propustite najvažnije vijesti o inovacijama. Prijavite se da ih primate putem e-pošte.

Pogledajmo sada primjer ograničenja za naš parametar `{numero}` kako biste bili sigurni da je samo broj proslijeđen funkciji.

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

U gornjem kodu koristili smo regularni izraz za broj putanje. Sada, ako korisnik pokuša usmjeriti na /tabela/br će biti prikazano izuzetak NotFoundHttpException.

Laravel rutiranje sa kontrolnom funkcijom

U Laravelu možete definish a Controller metoda za rutu. Metoda kontrolera izvodi sve radnje definit svaki put kada korisnik pristupi ruti.
Sa sljedećim kodom dodjeljujemo metodu kontrolera 'functionname' do rute:

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

Kod počinje sa `Route::` i stoga defizavršava metodu zahtjeva za putanju. nakon toga, defiZavršite svoju putanju i kontroler zajedno s metodom dodavanjem simbola @ ispred naziva metode.

Dajte stazi ime

U Laravelu možete definiš ime za svoj put. Ovo ime je često veoma korisno. Na primjer, ako želite preusmjeriti korisnika s jedne lokacije na drugu, ne morate defizavršiti puni URL za preusmjeravanje. Možete samo dati njegovo ime. Možeš defizavršite naziv rute pomoću metode `name` u instanci rute.

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

Sada bih mogao regenerirati url za ovu putanju, kroz sljedeći kod:

$url = route('table');

Slično, za preusmjeravanje na ovaj URL, ispravna sintaksa bi bila:

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

Route Groups

I Route Groups, doslovno grupe putanja, je suštinska karakteristika u Laravelu, koja vam omogućava grupisanje staza. Grupe staza su korisne kada želite da primenite atribute na sve grupisane staze. Ako koristite grupe putanja, ne morate primjenjivati ​​atribute pojedinačno na svaku stazu; ovo izbjegava dupliciranje. Omogućava vam dijeljenje atributa kao što su middleware o namespaces, bez defizavršite ove atribute na svakom pojedinačnom putu. Ovi zajednički atributi mogu se proslijediti u formatu niza kao prvi parametar metodi Route::group.

Sintaksa grupe ruta

Route::group([], callback);  

golub []: je niz proslijeđen metodi grupe kao prvi parametar.

Primjer Route Group Nel 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" ;   
   });  
});  

u kodu, defihajde da nađemo metodu grupa(), koji sadrži dva parametra, tj array e closure. Inside the closure, možemo defizavrši koliko route mi želimo. U gornjem kodu imamo defizavršio tri route.

Ako preko pretraživača pristupamo URL-u localhost/myproject/first onda prvi interveniše route kucanja u pretraživaču first way route.

Sa URL-om localhost/myproject/second onda dolazi drugi route kucanja u pretraživaču second way route.

Dok sa URL-om localhost/myproject/third onda dolazi treći route kucanja u pretraživaču third way route.

Prefiksi of Route Groups

Prefiksi od route koriste se kada želimo da pružimo URL strukturu zajedničku za više route.

Možemo odrediti prefiks za sve staze defikraja grupe koristeći opciju niza prefiksa u Route Groups.

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

Kod sadrži tri puta kojima se može pristupiti sa sljedećih URL-ova:

/movie/godfather  --->   Godfather casting

/movie/pulpfiction  --->   Pulp Fiction casting

/movie/forrestgump  --->   Forrest Gump casting

Middleware

Također možemo dodijeliti međuopremu svim rutama unutar grupe. Middleware mora biti defizavršeno prije kreiranja grupe. Da biste vidjeli kako to učiniti, pročitajte naš članak Laravel Middleware kako radi.

Esempio:

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

Prefiksi naziva putanje

Metoda name koristi se za prefiks svakog imena route sa specificiranim nizom. U metodi name, moramo navesti string sa znakom na kraju u prefiksu.

primjer web.php

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

Ercole Palmeri

Inovacijski bilten
Ne propustite najvažnije vijesti o inovacijama. Prijavite se da ih primate putem e-pošte.

Nedavni članak

Veeam nudi najsveobuhvatniju podršku za ransomware, od zaštite do odgovora i oporavka

Coveware od strane Veeam-a će nastaviti da pruža usluge odgovora na incidente u slučaju sajber iznude. Coveware će ponuditi mogućnosti forenzike i sanacije…

23 april 2024

Zelena i digitalna revolucija: Kako prediktivno održavanje transformira industriju nafte i plina

Prediktivno održavanje revolucionira sektor nafte i plina, s inovativnim i proaktivnim pristupom upravljanju postrojenjima.…

22 april 2024

Britanski antimonopolski regulator podigao je BigTech uzbunu zbog GenAI

UK CMA izdao je upozorenje o ponašanju Big Tech-a na tržištu umjetne inteligencije. Tamo…

18 april 2024

Casa Green: energetska revolucija za održivu budućnost u Italiji

Uredba o „zelenim kućama“, koju je formulisala Evropska unija za poboljšanje energetske efikasnosti zgrada, završila je svoj zakonodavni proces sa…

18 april 2024