Cesta je spôsob, ako vytvoriť adresu URL požiadavky pre vašu aplikáciu. Tieto adresy URL nemusia byť spojené s konkrétnymi súbormi na webovej lokalite a sú čitateľné pre ľudí a vhodné pre SEO.
V Laravel sa cesty vytvárajú v priečinku le routes
. Sú vytvorené v súbore web.php
pre webové stránky a v rámci nich api.php
pre API.
Títo route
sú priradené ku skupine middleware
siete so zvýraznením stavu relácie a bezpečnosti CSRF
. Trasy v route/api.php
sú bezstavové a sú priradené do skupiny API middleware.
PredinštaláciadefiLaravel nita prichádza s dvoma cestami, jednou pre web a jednou pre API. Takto vyzerá cesta pre web web.php
:
Route::get('/', function () {
return view('welcome');
});
Všetky cesty Laravel sú definiti v súboroch cesty umiestnených v adresári routes
. Aplikácia na správu trasy, defiukončené v spise App\Providers\RouteServiceProvider
, sa postará o automatické zoradenie týchto súborov. Súbor route/web.php
defiupraví cesty pre vaše webové rozhranie.
È príp deficestu pre túto akciu ovládača zadajte takto:
Route::get(‘user/{id}’, ‘UserController@show’);
Route::resource
: metóda Route::resource
vytvára všetky základné cesty požadované pre aplikáciu a je riadený prostredníctvom triedy radiča.
Keď sa požiadavka zhoduje so zadaným identifikátorom URI cesty, metóda sa vyvolá show
defihotové v ovládači App\Http\ControllersUserController
, odovzdávanie parametrov trasy metóde.
Pre zdroje musíte v aplikácii urobiť dve veci laravel. Najprv musíte vytvoriť cestu k zdroju laravel ktorý poskytuje vkladanie, aktualizáciu, prezeranie a mazanie ciest. Po druhé, vytvorte radič prostriedkov, ktorý poskytuje metódu na vkladanie, aktualizáciu, prezeranie a odstraňovanie.
PredinštaláciadefiLaravel nita prichádza s dvoma cestami: jednou pre web a jednou pre API. Takto vyzerá cesta na web v web.php:
Route::get(‘/’, function () {
return view(‘welcome’);
});
Laravel Middleware funguje ako most medzi požiadavkou a reakciou. Môže to byť nejaký druh komponentu filtra.
laravel pracovať s a middleware ktorá má za úlohu potvrdiť, či je klientska aplikácia overená alebo nie. V prípade, že je klient potvrdený, smerovanie presmeruje na domovskú stránku alebo prihlasovaciu stránku.
route
Predchádzajúci kód defiotvorí cestu na domovskú stránku. Kedykoľvek táto cesta dostane požiadavku get
za /
, vráti view
welcome
.
Všetky cesty Laravel sú definiti v tvojom routing
, ktoré sa nachádzajú v adresári dei routes
. v dôsledku toho l'AppProvidersRouteServiceProvider
aplikácie zoradí tieto záznamy. Súbor route/web.php
obsahuje trasy, ktoré sú spravované pre vaše webové rozhranie.
Štruktúra cesty je veľmi jednoduchá. Otvorte príslušný súbor (`web.php
` o `api.php
` ) a začnite riadok kódu s `Route:: `
, nasleduje požiadavka, ktorú chcete priradiť k tejto konkrétnej trase, a potom zadajte funkciu, ktorá sa vykoná po požiadavke.
Laravel ponúka nasledujúce spôsoby cesty:
get
post
put
delete
patch
options
Cesty sú defiv Laravel v rámci triedy Route s HTTP, cestou na odpoveď a zatvorením, alebo ovládačom.
Pozrime sa, ako si môžete vytvoriť svoje vlastné cesty v Laravel.
Teraz vytvorím základnú cestu, ktorá vytlačí tabuľku časov 2.
Route::get('/table', function () {
for($i =1; $i <= 10 ; $i++){
echo "$i * 2 = ". $i*2 ."<br>";
}
});
Vo vyššie uvedenom kóde som vytvoril cestu žiadosti GET pre adresu URL /table
, ktorý vytlačí tabuľku časov 2 na obrazovke.
Teraz sa pozrime na rovnaký kód, parametrizujúci číslo, pre ktoré chceme tabuľku násobenia:
Route::get('/table/{number}', function ($number) {
for($i =1; $i <= 10 ; $i++){
echo "$i * $number = ". $i* $number ."<br>";
}
});
V kóde je 'number
' medzi zátvorkami predstavuje parameter, teda číslo, pre ktoré sa vypočíta násobiaca tabuľka. Vždy, keď je zadaná adresa URL typu /table/n
, potom sa vytlačí číselná tabuľka n
.
Existuje tiež spôsob, ako spojiť obe funkcie do jednej cesty. Laravel ponúka funkciu voliteľných parametrov, ktorá vám umožňuje pridať voliteľné parametre pomocou otáznika '?' za voliteľným parametrom a pred hodnotoudefinoc. Pozrime sa na príklad:
Route::get('/table/{number?}', function ($number = 2) {
for($i =1; $i <= 10 ; $i++){
echo "$i * $number = ". $i* $number ."<br>";
}
});
Vo vyššie uvedenom kóde sme vytvorili náš parameter trasy, pričom číslo bolo voliteľné, takže ak používateľ smeruje `/table
` potom štandardne vygeneruje tabuľku 2definite a ak používateľ smeruje na `/table/{number}
Potom číselná tabuľka 'number'
sa bude vyrábať.
V predchádzajúcom príklade sme vytvorili cestu na generovanie násobilky, ale ako môžeme zabezpečiť, aby parametrom cesty bolo skutočne číslo, aby sme sa vyhli chybám pri generovaní násobilky?
V Laravel môžete defipomocou metódy ` upravte obmedzenie parametra trasywhere
` na inštancii trasy. `where
` preberá názov parametra a regulárny výraz pre tento parameter.
Teraz sa pozrime na príklad obmedzenia pre náš parameter `{numero}
`, aby ste sa uistili, že do funkcie sa odovzdá iba číslo.
Route:: get ( '/table/{numero?}' , funzione ( $numero = 2 ) {
for( $i = 1 ; $i < = 10 ; $i + + ) {
echo "$i * $numero = " . $i * $numero . "<br>" ;
}
} )->where( 'numero' , '[0-9]+' ) ;
Vo vyššie uvedenom kóde sme pre číslo cesty použili regulárny výraz. Teraz, ak sa používateľ pokúsi nasmerovať na /tabuľka/č sa zobrazí výnimka NotFoundHttpException.
V Laravel môžete definish Controller metódu pre trasu. Metóda ovládača vykonáva všetky akcie definite zakaždým, keď používateľ pristúpi k trase.
Pomocou nasledujúceho kódu priraďujeme metódu ovládača 'functionname'
na trasu:
Route:: get ( '/home' , 'YourController@functionname' ) ;
Kód začína s `Route::`
a potom defidokončí metódu požiadavky na cestu. následne defiDokončite svoju cestu a ovládač spolu s metódou pridaním symbolu @ pred názov metódy.
V Laravel môžete defipomenujte svoju cestu. Toto meno je často veľmi užitočné. Ak napríklad chcete presmerovať používateľa z jedného miesta na druhé, nemusíte definish celú adresu URL presmerovania. Môžete len uviesť jeho meno. Môžeš defizistite názov trasy pomocou metódy `name
` v inštancii trasy.
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’);
Teraz by som mohol vygenerovať adresu URL pre túto cestu pomocou nasledujúceho kódu:
$url = route('table');
Podobne pri presmerovaní na túto adresu URL by správna syntax bola:
return redirect()->route('table');
Route Groups
I Route Groups
, doslova skupiny ciest, je základná funkcia v Laravel, ktorá vám umožňuje zoskupovať cesty. Skupiny ciest sú užitočné, keď chcete použiť atribúty na všetky zoskupené cesty. Ak používate skupiny ciest, nemusíte atribúty aplikovať jednotlivo na každú cestu; tým sa zabráni duplicite. Umožňuje vám zdieľať atribúty ako middleware
o namespaces
, bez defidokončiť tieto atribúty na každej jednotlivej ceste. Tieto zdieľané atribúty možno odovzdať vo formáte poľa ako prvý parameter do metódy Route::group
.
Syntax skupiny trás
Route::group([], callback);
holubica []: je pole odovzdané metóde skupiny ako prvý parameter.
Príklad Route Group
v 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" ;
});
});
V kóde defipoďme nájsť metódu skupina(), ktorý obsahuje dva parametre, t.j array
e closure
. Vnútri closure
, Môžeme defidokončiť koľko route
chceme. Vo vyššie uvedenom kóde máme defiskončili tri route
.
Ak cez prehliadač pristupujeme k URL localhost/myproject/first
potom zasiahne prvý route
písaním v prehliadači first way route
.
S adresou URL localhost/myproject/second
potom príde druhý route
písaním v prehliadači second way route
.
Zatiaľ čo s URL localhost/myproject/third
potom príde tretí route
písaním v prehliadači third way route
.
Route Groups
Predpony z route
používajú sa, keď chceme poskytnúť štruktúru adresy URL spoločnú pre viaceré route
.
Pre všetky cesty môžeme zadať predponu definite v rámci skupiny pomocou voľby poľa prefixov v Route Groups
.
Príklad 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";
});
});
Kód obsahuje tri cesty, ku ktorým je možné pristupovať z nasledujúcich adries URL:
/movie/godfather ---> Godfather casting
/movie/pulpfiction ---> Pulp Fiction casting
/movie/forrestgump ---> Forrest Gump casting
Môžeme tiež priradiť middleware všetkým trasám v rámci skupiny. Middleware musí byť defidokončené pred vytvorením skupiny. Ak chcete zistiť, ako to urobiť, prečítajte si náš článok Laravel middleware, ako to funguje.
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";
});
});
Metóda name
sa používa na predponu každého mena route
so zadaným reťazcom. V metóde name
, musíme zadať reťazec s koncovým znakom v predpone.
príklad web.php
Route::name('movie.')->group(function()
{
Route::get('users', function()
{
return "movie.films";
})->name('films');
});
Ercole Palmeri
Rozvíjanie jemnej motoriky pomocou vyfarbovania pripravuje deti na zložitejšie zručnosti, ako je písanie. Na farbenie…
Námorný sektor je skutočnou globálnou ekonomickou veľmocou, ktorá smerovala k 150 miliardovému trhu...
Minulý pondelok Financial Times oznámili dohodu s OpenAI. FT licencuje svoju žurnalistiku svetovej triedy…
Milióny ľudí platia za streamovacie služby a platia mesačné predplatné. Je bežný názor, že si…