Ceļš ir veids, kā lietojumprogrammai izveidot pieprasījuma URL. Šie URL nav jāsaista ar konkrētiem failiem vietnē, un tie ir cilvēkiem lasāmi un piemēroti SEO.
Programmā Laravel ceļi tiek izveidoti mapē le routes
. Tie ir izveidoti failā web.php
vietnēm un iekšienē api.php
API.
Šis route
tiek piešķirti grupai middleware
tīkls, izceļot sesijas statusu un drošību CSRF
. Maršruti iekšā route/api.php
tie ir bezvalstnieki un ir piešķirti API starpprogrammatūras grupai.
Iepriekšēja uzstādīšanadefiLaravel nita ir divi ceļi, viens tīmeklim un otrs API. Šādi izskatās tīmekļa vietne web.php
:
Route::get('/', function () {
return view('welcome');
});
Visi Laravel ceļi ir definiti ceļa failos, kas atrodas direktorijā routes
. maršruta pārvaldības lietojumprogramma, defiiekļauts failā App\Providers\RouteServiceProvider
, rūpējas par šo failu automātisku sarindošanu. Fails route/web.php
definosaka ceļus jūsu tīmekļa saskarnei.
Tas ir iespējams defiizveidojiet ceļu šai kontroliera darbībai šādi:
Route::get(‘user/{id}’, ‘UserController@show’);
Route::resource
: metode Route::resource
rada visus lietojumprogrammai nepieciešamos pamata ceļus un tiek pārvaldīts, izmantojot kontroliera klasi.
Kad pieprasījums atbilst norādītajam maršruta URI, tiek izsaukta metode show
defipabeigts kontrolierī App\Http\ControllersUserController
, nododot maršruta parametrus metodei.
Lai iegūtu resursus, lietojumprogrammā ir jāveic divas darbības Laravel. Pirmkārt, jums ir jāizveido resursa ceļš Laravel kas nodrošina ievietošanas, atjaunināšanas, skatīšanas un dzēšanas ceļus. Otrkārt, izveidojiet resursu kontrolleri, kas nodrošina ievietošanas, atjaunināšanas, apskates un dzēšanas metodi.
Iepriekšēja uzstādīšanadefiLaravel nita ir divi ceļi: viens tīmeklim un otrs API. Lūk, kā izskatās ceļš uz tīmekli vietnē web.php:
Route::get(‘/’, function () {
return view(‘welcome’);
});
Laravel starpprogrammatūra darbojas kā tilts starp pieprasījumu un reakciju. Tas var būt sava veida filtra sastāvdaļa.
Laravel strādāt ar a starpprogrammatūra kuras uzdevums ir apstiprināt, vai klienta lietojumprogramma ir pārbaudīta vai nē. Gadījumā, ja klients tiek apstiprināts, maršrutēšana tiek novirzīta uz sākumlapu vai pieteikšanās lapu.
route
Iepriekšējais kods defiatver ceļu uz sākumlapu. Ikreiz, kad šis ceļš saņem pieprasījumu get
par /
, atgriezīs view
welcome
.
Visi Laravel ceļi ir definiti tavā routing
, kas atrodas direktorijā dei routes
. Sekojoši, l'AppProvidersRouteServiceProvider
pieteikums sarindo šos ierakstus. Fails route/web.php
satur maršrutus, kas tiek pārvaldīti jūsu tīmekļa saskarnei.
Ceļa struktūra ir ļoti vienkārša. Atveriet atbilstošo failu (`web.php
` o `api.php
` ) un sāciet koda rindiņu ar `Route:: `
, kam seko pieprasījums, kuru vēlaties piešķirt šim konkrētajam maršrutam, un pēc tam norādiet funkciju, kas tiks izpildīta pēc pieprasījuma.
Laravel piedāvā šādas ceļa metodes:
get
post
put
delete
patch
options
Takas ir definited Laravel klasē Maršruts ar HTTP, maršruts, uz kuru atbildēt un aizvērt, vai kontrolieris.
Apskatīsim, kā jūs varat izveidot savus ceļus Laravelā.
Tagad es izveidošu pamata ceļu, kas izdrukās 2. laika tabulu.
Route::get('/table', function () {
for($i =1; $i <= 10 ; $i++){
echo "$i * 2 = ". $i*2 ."<br>";
}
});
Iepriekš minētajā kodā URL izveidoju GET pieprasījuma ceļu /table
, kas uz ekrāna izdrukās laika tabulu 2.
Tagad redzēsim to pašu kodu, parametrējot skaitli, kuram mēs vēlamies reizināšanas tabulu:
Route::get('/table/{number}', function ($number) {
for($i =1; $i <= 10 ; $i++){
echo "$i * $number = ". $i* $number ."<br>";
}
});
Kodā 'number
' starp iekavām apzīmē parametru, t.i., skaitli, kuram tiks aprēķināta reizināšanas tabula. Ikreiz, kad ir norādīts šāda veida URL /table/n
, tad numuru tabula tiks izdrukāta n
.
Ir arī veids, kā apvienot abas funkcijas vienā ceļā. Laravel piedāvā izvēles parametru funkciju, kas ļauj pievienot izvēles parametrus, izmantojot jautājuma zīmi "?" aiz izvēles parametra un priekšvērtībasdefivakars. Apskatīsim piemēru:
Route::get('/table/{number?}', function ($number = 2) {
for($i =1; $i <= 10 ; $i++){
echo "$i * $number = ". $i* $number ."<br>";
}
});
Iepriekš esošajā kodā mēs izveidojām maršruta parametru, padarot numuru neobligātu, tādēļ, ja lietotājs maršrutē `/table
` tad tas pēc noklusējuma ģenerēs tabulu 2definite un, ja lietotājs novirza uz `/table/{number}
Tad skaitļu tabula 'number'
tiks ražots.
Iepriekšējā piemērā mēs izveidojām ceļu reizināšanas tabulas ģenerēšanai, bet kā mēs varam nodrošināt, ka ceļa parametrs patiešām ir skaitlis, lai izvairītos no kļūdām, ģenerējot reizināšanas tabulu?
Laravelā jūs varat definoteikt ierobežojumu maršruta parametram, izmantojot metodi `where
` maršruta instancē. `where
` ņem parametra nosaukumu un šī parametra regulāro izteiksmi.
Tagad apskatīsim mūsu parametra ` ierobežojuma piemēru{numero}
` lai pārliecinātos, ka funkcijai tiek nodots tikai skaitlis.
Route:: get ( '/table/{numero?}' , funzione ( $numero = 2 ) {
for( $i = 1 ; $i < = 10 ; $i + + ) {
echo "$i * $numero = " . $i * $numero . "<br>" ;
}
} )->where( 'numero' , '[0-9]+' ) ;
Iepriekš minētajā kodā ceļa numuram izmantojām regulāro izteiksmi. Tagad, ja lietotājs mēģina maršrutēt uz /tabula/nr tiks parādīts NotFoundHttpException izņēmums.
Laravelā jūs varat definish Controller metodi ceļam. Kontroliera metode veic visas darbības definite katru reizi, kad lietotājs piekļūst maršrutam.
Ar šādu kodu mēs piešķiram kontroliera metodi 'functionname'
uz maršrutu:
Route:: get ( '/home' , 'YourController@functionname' ) ;
Kods sākas ar `Route::`
un pēc tam definihes ceļa pieprasījuma metodi. Sekojoši, defiPabeidziet ceļu un kontrolleri kopā ar metodi, pievienojot simbolu @ pirms metodes nosaukuma.
Laravelā jūs varat definosauc vārdu savam ceļam. Šis nosaukums bieži ir ļoti noderīgs. Piemēram, ja vēlaties novirzīt lietotāju no vienas atrašanās vietas uz citu, jums tas nav jādara defiievadiet pilnu novirzīšanas URL. Jūs varat vienkārši nosaukt viņa vārdu. Jūs varat defiievadiet maršruta nosaukumu, izmantojot metodi `name
` maršruta instancē.
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’);
Tagad es varētu atjaunot šī ceļa URL, izmantojot šādu kodu:
$url = route('table');
Līdzīgi, lai novirzītu uz šo URL, pareizā sintakse būtu:
return redirect()->route('table');
Route Groups
I Route Groups
, burtiski ceļu grupas, ir būtiska Laravel funkcija, kas ļauj grupēt ceļus. Ceļu grupas ir noderīgas, ja vēlaties lietot atribūtus visiem grupētajiem ceļiem. Ja izmantojat ceļu grupas, atribūti nav jāpiemēro katram ceļam atsevišķi; tas novērš dublēšanos. Tas ļauj koplietot tādus atribūtus kā middleware
o namespaces
, bez defipabeidziet šos atribūtus katrā atsevišķā ceļā. Šos koplietotos atribūtus var nodot masīva formātā kā pirmo parametru metodei Route::group
.
Maršrutu grupas sintakse
Route::group([], callback);
balodis []: ir masīvs, kas tiek nodots grupas metodei kā pirmais parametrs.
Piemērs Route Group
uz 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" ;
});
});
Kodā, defimeklēsim metodi grupa (), kas satur divus parametrus, t.i array
e closure
. Iekšpusē closure
, mēs varam defipabeidz cik route
mēs gribam. Iepriekš minētajā kodā mums ir defipabeidza trīs route
.
Ja mēs piekļūstam URL, izmantojot pārlūkprogrammu localhost/myproject/first
tad iejaucas pirmais route
ierakstot pārlūkprogrammā first way route
.
Ar URL localhost/myproject/second
tad nāk otrais route
ierakstot pārlūkprogrammā second way route
.
Kamēr ar URL localhost/myproject/third
tad nāk trešais route
ierakstot pārlūkprogrammā third way route
.
Route Groups
Prefiksi no route
tie tiek izmantoti, ja mēs vēlamies nodrošināt URL struktūru, kas ir kopīga vairākiem route
.
Mēs varam norādīt prefiksu visiem ceļiem definites grupā, izmantojot prefiksu masīva opciju Route Groups
.
Piemērs 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ā ir trīs ceļi, kuriem var piekļūt no šādiem URL:
/movie/godfather ---> Godfather casting
/movie/pulpfiction ---> Pulp Fiction casting
/movie/forrestgump ---> Forrest Gump casting
Mēs varam arī piešķirt starpprogrammatūru visiem grupas maršrutiem. Starpprogrammatūrai jābūt defipabeidza pirms grupas izveides. Lai uzzinātu, kā to izdarīt, izlasiet mūsu rakstu Laravel starpprogrammatūra, kā tā darbojas.
Example:
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";
});
});
Metode name
tiek izmantots katra nosaukuma prefiksam route
ar noteiktu virkni. Metodē name
, mums jānorāda virkne ar beigu rakstzīmi prefiksā.
piemērs web.php
Route::name('movie.')->group(function()
{
Route::get('users', function()
{
return "movie.films";
})->name('films');
});
Ercole Palmeri
Uzņēmuma e-pastu kompromiss 2024. gada pirmajos trīs mēnešos palielinājās vairāk nekā divas reizes, salīdzinot ar pēdējo ceturksni…
Interfeisa segregācijas princips ir viens no pieciem objektorientētā dizaina SOLIDA principiem. Klasei vajadzētu būt…
Microsoft Excel ir atsauces rīks datu analīzei, jo tas piedāvā daudzas iespējas datu kopu organizēšanai,…
Walliance, SIM un platforma starp līderiem Eiropā nekustamo īpašumu kopfinansēšanas jomā kopš 2017. gada, paziņo par…
Filament ir "paātrināta" Laravel izstrādes sistēma, kas nodrošina vairākus pilnus komponentus. Tas ir paredzēts, lai vienkāršotu procesu…
«Man ir jāatgriežas, lai pabeigtu savu evolūciju: es projicēšu sevi datorā un kļūšu par tīru enerģiju. Kad apmetās…
Google DeepMind ievieš uzlabotu sava mākslīgā intelekta modeļa versiju. Jaunais uzlabotais modelis nodrošina ne tikai…
Laravel, kas slavena ar savu eleganto sintaksi un jaudīgām funkcijām, nodrošina arī stabilu pamatu moduļu arhitektūrai. Tur…