Straipsniai

Laravel: įvadas į laravel maršrutą

Maršrutas Laravel leidžia vartotojams nukreipti visas programų užklausas į atitinkamą valdiklį. Dauguma pagrindinių Laravel maršrutų atpažįsta ir priima Uniform Asset Identifier kartu su uždarymu, todėl yra paprastas ir išraiškingas maršruto parinkimo būdas.

Kas yra maršrutas (maršrutas)?

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

Kas yra maršrutas Laravelyje?

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į.

Metodai, skirti 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.phpo `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.

Kaip sukurti takus Laravelyje

Pažiūrėkime, kaip galite sukurti savo kelius Laravel.

Pagrindinis GET kelias

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.

Reguliarios išraiškos kaip maršruto parametrų apribojimai

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ą.

Inovacijų naujienlaiškis
Nepraleiskite svarbiausių naujienų apie naujoves. Prisiregistruokite, kad gautumėte juos el.

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.

Laravel Routing su valdymo funkcija

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ą.

Suteikite keliui 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.

Priešdėliai iš 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

Tarpinė programinė įranga

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

Kelio pavadinimo priešdėliai

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

Inovacijų naujienlaiškis
Nepraleiskite svarbiausių naujienų apie naujoves. Prisiregistruokite, kad gautumėte juos el.

Naujausi straipsniai

Naujoviška intervencija į išplėstinę realybę su „Apple“ žiūrovu Katanijos poliklinikoje

Katanijos poliklinikoje buvo atlikta oftalmoplastikos operacija naudojant „Apple Vision Pro“ reklaminę peržiūrą…

3 gegužės 2024

Vaikų spalvinimo puslapių privalumai – magijos pasaulis įvairaus amžiaus žmonėms

Lavindami smulkiosios motorikos įgūdžius dažydami, vaikai paruošiami sudėtingesniems įgūdžiams, pavyzdžiui, rašymui. Norėdami nuspalvinti…

2 gegužės 2024

Ateitis yra čia: kaip laivybos pramonė sukelia pasaulinės ekonomikos revoliuciją

Karinio jūrų laivyno sektorius yra tikra pasaulinė ekonominė galia, kuri pasiekė 150 mlrd.

1 gegužės 2024

Leidėjai ir OpenAI pasirašo sutartis dėl dirbtinio intelekto apdorojamos informacijos srauto reguliavimo

Praėjusį pirmadienį „Financial Times“ paskelbė apie susitarimą su „OpenAI“. FT licencijuoja savo pasaulinio lygio žurnalistiką…

30 balandis 2024