Kelias yra būdas sukurti programos užklausos URL. Šių URL nereikia susieti su konkrečiais svetainės failais, jie yra skaitomi žmonėms ir tinkami SEO.
„Laravel“ aplanke sukuriami keliai routes
. Jie sukuriami faile web.php
svetainėms ir viduje api.php
API.
Tai route
yra priskirti grupei middleware
tinklą, pabrėždamas seanso būseną ir saugumą CSRF
. Maršrutai į route/api.php
jie yra be būsenos ir yra priskirti API tarpinės programinės įrangos grupei.
Išankstinis montavimasdefi„Laravel nita“ turi du kelius: vieną žiniatinkliui ir kitą API. Taip atrodo žiniatinklio kelias web.php
:
Route::get('/', function () {
return view('welcome');
});
Visi Laravel takai yra definiti kelio failuose, esančiuose kataloge routes
. Maršruto valdymo programa, defiįrašytas į bylą App\Providers\RouteServiceProvider
, pasirūpina automatiniu šių failų išdėstymu. Failas route/web.php
definustato jūsų žiniatinklio sąsajos kelius.
Sib galima defiNurodykite šio valdiklio veiksmo kelią taip:
Route::get(‘user/{id}’, ‘UserController@show’);
Route::resource
: metodas Route::resource
sukuria visus pagrindinius kelius, reikalingus programai, ir yra valdomas per valdiklio klasę.
Kai užklausa atitinka nurodytą maršruto URI, iškviečiamas metodas show
defibaigtas valdiklyje App\Http\ControllersUserController
, perduodant maršruto parametrus metodui.
Norėdami gauti išteklių, programoje turite atlikti du veiksmus Laravel. Pirmiausia turite sukurti išteklių kelią Laravel kuri suteikia įterpimo, atnaujinimo, peržiūros ir trynimo kelius. Antra, sukurkite išteklių valdiklį, kuris suteikia įterpimo, atnaujinimo, peržiūros ir ištrynimo metodą.
Išankstinis montavimasdefi„Laravel nita“ turi du kelius: vieną žiniatinkliui ir kitą API. Štai kaip atrodo kelias į žiniatinklį web.php:
Route::get(‘/’, function () {
return view(‘welcome’);
});
Laravel tarpinė programinė įranga veikia kaip tiltas tarp prašymo ir reakcijos. Tai gali būti tam tikras filtro komponentas.
Laravel dirbti su a tarpinė programinė įranga kurios užduotis yra patvirtinti, ar kliento programa yra patikrinta, ar ne. Jei klientas patvirtinamas, maršruto parinkimas nukreipia į pagrindinį puslapį arba prisijungimo puslapį.
route
Ankstesnis kodas defiatveria kelią į pagrindinį puslapį. Kai tik šis maršrutas gauna užklausą get
už /
, grąžins view
welcome
.
Visi Laravel takai yra definiti tavo routing
, kurie yra kataloge dei routes
. Vadinasi, l'AppProvidersRouteServiceProvider
paraiškos surašo šiuos įrašus. Failas route/web.php
yra maršrutai, tvarkomi jūsų žiniatinklio sąsajai.
Kelio struktūra labai paprasta. Atidarykite atitinkamą failą (`web.php
` o `api.php
` ) ir pradėkite kodo eilutę su `Route:: `
, po kurio pateikiama užklausa, kurią norite priskirti tam konkrečiam maršrutui, ir tada nurodykite funkciją, kuri bus vykdoma gavus užklausą.
Laravel siūlo šiuos kelio metodus:
get
post
put
delete
patch
options
Keliai yra definited Laravel maršruto klasėje su HTTP, atsakymo maršrutu ir uždarymu arba valdikliu.
Pažiūrėkime, kaip galite sukurti savo kelius Laravel.
Dabar aš sukursiu pagrindinį kelią, kuris atspausdins 2 laiko lentelę.
Route::get('/table', function () {
for($i =1; $i <= 10 ; $i++){
echo "$i * 2 = ". $i*2 ."<br>";
}
});
Aukščiau pateiktame kode sukūriau URL GET užklausos kelią /table
, kuri ekrane išspausdins 2 laiko lentelę.
Dabar pažiūrėkime tą patį kodą, parametruodami skaičių, kuriam norime daugybos lentelės:
Route::get('/table/{number}', function ($number) {
for($i =1; $i <= 10 ; $i++){
echo "$i * $number = ". $i* $number ."<br>";
}
});
Kode „number
' tarp skliaustų reiškia parametrą, t. y. skaičių, kuriam bus skaičiuojama daugybos lentelė. Kai nurodomas tokio tipo URL /table/n
, tada bus atspausdinta skaičių lentelė n
.
Taip pat yra būdas sujungti abi funkcijas viename kelyje. „Laravel“ siūlo pasirenkamų parametrų funkciją, kuri leidžia pridėti pasirenkamų parametrų naudojant klaustuką „? po pasirenkamo parametro ir išankstinės reikšmėsdefivakaro. Pažiūrėkime pavyzdį:
Route::get('/table/{number?}', function ($number = 2) {
for($i =1; $i <= 10 ; $i++){
echo "$i * $number = ". $i* $number ."<br>";
}
});
Aukščiau esančiame kode sukūrėme maršruto parametrą, todėl skaičius pasirenkamas, todėl, jei vartotojas nukreipia `/table
` tada pagal numatytuosius nustatymus sugeneruos 2 lentelędefinite ir jei vartotojas nukreipia į `/table/{number}
Tada skaičių lentelė 'number'
bus gaminamas.
Ankstesniame pavyzdyje sukūrėme kelią daugybos lentelei generuoti, bet kaip užtikrinti, kad kelio parametras iš tikrųjų būtų skaičius, kad išvengtume klaidų generuojant daugybos lentelę?
Laravelyje galite definustatyti maršruto parametro apribojimą naudojant metodą `where
` maršruto egzemplioriuje. `where
` paima parametro pavadinimą ir reguliariąją to parametro išraišką.
Dabar pažiūrėkime mūsų parametro ` apribojimo pavyzdį{numero}
`, kad įsitikintumėte, jog funkcijai perduodamas tik skaičius.
Route:: get ( '/table/{numero?}' , funzione ( $numero = 2 ) {
for( $i = 1 ; $i < = 10 ; $i + + ) {
echo "$i * $numero = " . $i * $numero . "<br>" ;
}
} )->where( 'numero' , '[0-9]+' ) ;
Aukščiau pateiktame kode naudojome reguliariąją kelio numerio išraišką. Dabar, jei vartotojas bando nukreipti į /lentelė/nr bus rodomas NotFoundHttpException išimtis.
Laravelyje galite definustatyti maršruto valdiklio metodą. Valdiklio metodas atlieka visus veiksmus definite kiekvieną kartą, kai vartotojas pasiekia maršrutą.
Su šiuo kodu priskiriame valdiklio metodą 'functionname'
į maršrutą:
Route:: get ( '/home' , 'YourController@functionname' ) ;
Kodas prasideda nuo `Route::`
ir defisujungia kelio užklausos metodą. Vėliau, defiUžbaikite kelią ir valdiklį kartu su metodu, pridėdami simbolį @ prieš metodo pavadinimą.
Laravelyje galite defisuteik savo keliui pavadinimą. Šis vardas dažnai yra labai naudingas. Pavyzdžiui, jei norite nukreipti vartotoją iš vienos vietos į kitą, jums to nereikia defigauti visą peradresavimo URL. Galite tiesiog nurodyti jo vardą. Tu gali definurodykite maršruto pavadinimą naudodami ` metodąname
` maršruto pavyzdyje.
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’);
Dabar galėčiau atkurti šio kelio URL naudodami šį kodą:
$url = route('table');
Panašiai, norint peradresuoti į šį URL, teisinga sintaksė būtų tokia:
return redirect()->route('table');
Route Groups
I Route Groups
, pažodžiui kelių grupės, yra esminė Laravel funkcija, leidžianti grupuoti kelius. Kelių grupės yra naudingos, kai norite taikyti atributus visiems sugrupuotiems keliams. Jei naudojate kelių grupes, nereikės kiekvienam keliui taikyti atributų atskirai; taip išvengiama dubliavimosi. Tai leidžia dalytis tokiais atributais kaip middleware
o namespaces
, be defiužbaigti šiuos atributus kiekviename atskirame kelyje. Šiuos bendrinamus atributus galima perduoti masyvo formatu kaip pirmąjį metodo parametrą Route::group
.
Maršruto grupės sintaksė
Route::group([], callback);
balandis []: yra masyvas, perduotas grupės metodui kaip pirmasis parametras.
Pavyzdys 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" ;
});
});
Kode, defirasime metodą grupė (), kuriame yra du parametrai, t.y array
e closure
. Viduje closure
, Mes galime defibaigti kiek route
Mes norime. Aukščiau pateiktame kode mes turime defibaigė tris route
.
Jei per naršyklę pasiekiame URL localhost/myproject/first
tada įsiterpia pirmasis route
įvesdami naršyklėje first way route
.
Su URL localhost/myproject/second
tada ateina antrasis route
įvesdami naršyklėje second way route
.
Nors su URL localhost/myproject/third
tada ateina trečias route
įvesdami naršyklėje third way route
.
Route Groups
Priešdėliai route
jie naudojami, kai norime pateikti keliems bendrą URL struktūrą route
.
Galime nurodyti visų kelių priešdėlį definites grupėje, naudodami prefikso masyvo parinktį Route Groups
.
Pavyzdys 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";
});
});
Kode yra trys keliai, kuriuos galima pasiekti iš šių URL:
/movie/godfather ---> Godfather casting
/movie/pulpfiction ---> Pulp Fiction casting
/movie/forrestgump ---> Forrest Gump casting
Taip pat galime priskirti tarpinę programinę įrangą visiems grupės maršrutams. Tarpinė programinė įranga turi būti defibaigė prieš kurdamas grupę. Norėdami sužinoti, kaip tai padaryti, perskaitykite mūsų straipsnį „Laravel“ tarpinė programinė įranga, kaip ji veikia.
Pavyzdys:
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";
});
});
Metodas name
naudojamas kiekvieno vardo priešdėliui route
su nurodyta eilute. Metodoje name
, turime nurodyti eilutę su priešdėlyje esančiu simboliu.
pavyzdys web.php
Route::name('movie.')->group(function()
{
Route::get('users', function()
{
return "movie.films";
})->name('films');
});
Ercole Palmeri
Katanijos poliklinikoje buvo atlikta oftalmoplastikos operacija naudojant „Apple Vision Pro“ reklaminę peržiūrą…
Lavindami smulkiosios motorikos įgūdžius dažydami, vaikai paruošiami sudėtingesniems įgūdžiams, pavyzdžiui, rašymui. Norėdami nuspalvinti…
Karinio jūrų laivyno sektorius yra tikra pasaulinė ekonominė galia, kuri pasiekė 150 mlrd.
Praėjusį pirmadienį „Financial Times“ paskelbė apie susitarimą su „OpenAI“. FT licencijuoja savo pasaulinio lygio žurnalistiką…