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');
});
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.
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.php
` o `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.
Hajde da vidimo kako možete kreirati sopstvene staze u Laravelu.
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.
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.
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.
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.
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
.
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
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";
});
});
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
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…
Prediktivno održavanje revolucionira sektor nafte i plina, s inovativnim i proaktivnim pristupom upravljanju postrojenjima.…
UK CMA izdao je upozorenje o ponašanju Big Tech-a na tržištu umjetne inteligencije. Tamo…
Uredba o „zelenim kućama“, koju je formulisala Evropska unija za poboljšanje energetske efikasnosti zgrada, završila je svoj zakonodavni proces sa…