Artiklid

Laravel: sissejuhatus laraveli marsruutimisse

Laraveli marsruutimine võimaldab kasutajatel suunata kõik rakenduste päringud vastavasse kontrollerisse. Enamik Laraveli peamisi marsruute tunneb ära ja aktsepteerib ühtset varaidentifikaatorit koos sulgemisega, pakkudes lihtsat ja ilmekat marsruutimisviisi.

Mis on marsruut (marsruut)?

Tee on viis oma rakendusele päringu URL-i loomiseks. Neid URL-e ei pea seostama veebisaidil olevate konkreetsete failidega ning need on inimestele loetavad ja SEO-sõbralikud.

Laravelis luuakse teed kaustas le routes. Need luuakse failis web.php veebisaitide jaoks ja sees api.php API-de jaoks.

Need route on määratud rühma middleware võrk, tõstes esile seansi oleku ja turvalisuse CSRF. Marsruudid sisse route/api.php need on kodakondsuseta ja on määratud API vahevara rühma.
EelinstalliminedefiLaravel nital on kaks teed, üks veebi ja teine ​​API jaoks. Nii näeb välja veebitee web.php:

Route::get('/', function () {
   return view('welcome');
});

Mis on marsruut Laravelis?

Kõik Laraveli teed on definiti kataloogis asuvates teefailides routes. marsruudi haldamise rakendus, defitoimikusse kantud App\Providers\RouteServiceProvider, hoolitseb nende failide automaatse järjestamise eest. Fail route/web.php defimäärab teie veebiliidese teed.

See on võimalik defimäärake selle kontrolleri toimingu tee järgmiselt:

Route::get(‘user/{id}’, ‘UserController@show’);

Route::resource: meetod Route::resource toodab kõik rakenduse jaoks vajalikud põhiteed ja seda hallatakse kontrolleriklassi kaudu.

Kui päring vastab määratud marsruudi URI-le, käivitatakse meetod show defikontrolleris valmis App\Http\ControllersUserController, edastades marsruudi parameetrid meetodile.

Ressursside jaoks peate rakenduses tegema kaks asja Laravel. Esiteks peate looma ressursitee Laravel mis pakub sisestamise, värskendamise, vaatamise ja kustutamise teid. Teiseks looge ressursikontroller, mis pakub meetodit sisestamiseks, värskendamiseks, vaatamiseks ja kustutamiseks.

EelinstalliminedefiLaravel nital on kaks teed: üks veebi ja teine ​​API jaoks. Veebi marsruut veebisaidil web.php näeb välja järgmine:

Route::get(‘/’, function () {

return view(‘welcome’);

});

Laraveli vahevara toimib sillana taotluse ja reaktsiooni vahel. See võib olla mingi filtrikomponent.

Laravel töötama koos a vahevara mille ülesanne on kinnitada, kas kliendirakendus on kinnitatud või mitte. Kui klient on kinnitatud, suunab marsruutimine avalehele või sisselogimislehele.

Meetodid selleks, route

Eelmine kood defiavab tee avalehele. Kui see marsruut saab päringu get kohta /, tagastab view welcome

Kõik Laraveli teed on definiti sinus routing, mis asuvad kataloogis dei routes. Järelikult l'AppProvidersRouteServiceProvider rakenduses reastab need kirjed. Fail route/web.php sisaldab marsruute, mida hallatakse teie veebiliidese jaoks.

Tee struktuur on väga lihtne. Avage sobiv fail (`web.phpo `api.php) ja alusta koodirida tähega `Route:: `, millele järgneb päring, mille soovite sellele konkreetsele marsruudile määrata, ja seejärel määrake funktsioon, mis pärast päringut täidetakse.

Laravel pakub järgmisi teemeetodeid:

  • get
  • post
  • put
  • delete
  • patch
  • options

Teed on definited Laravelis klassis Route HTTP-ga, marsruudile vastamiseks ja sulgemiseks või kontrolleriga.

Kuidas Laravelis radu luua

Vaatame, kuidas saate Laravelis oma radu luua.

Põhiline GET-tee

Nüüd loon põhitee, mis prindib ajatabeli 2.

Route::get('/table', function () {
   for($i =1; $i <= 10 ; $i++){
       echo "$i * 2 = ". $i*2 ."<br>";
   }   
});

Ülaltoodud koodis lõin URL-i jaoks GET-i päringu tee /table, mis prindib ekraanile ajatabeli 2.

Nüüd vaatame sama koodi, parameetrites arvu, mille jaoks korrutustabelit tahame:

Route::get('/table/{number}', function ($number) {
   for($i =1; $i <= 10 ; $i++){
       echo "$i * $number = ". $i* $number ."<br>";
   }   
});

Koodis on 'number' sulgude vahel tähistab parameetrit, st arvu, mille jaoks korrutustabel arvutatakse. Kui on määratud seda tüüpi URL /table/n, siis prinditakse numbritabel n.

Samuti on võimalus ühendada mõlemad funktsioonid ühel teel. Laravel pakub valikuliste parameetrite funktsiooni, mis võimaldab lisada valikulisi parameetreid kasutades küsimärki "?" pärast valikulist parameetrit ja eelväärtustdefiõhtune. Vaatame näidet:

Route::get('/table/{number?}', function ($number = 2) {
   for($i =1; $i <= 10 ; $i++){
       echo "$i * $number = ". $i* $number ."<br>";
   }   
});

Ülaltoodud koodis lõime oma marsruudi parameetri, muutes numbri valikuliseks, nii et kui kasutaja marsruudib `/table` siis loob see vaikimisi tabeli 2definite ja kui kasutaja suunab aadressi `/table/{number}Siis numbritabel 'number' hakatakse tootma.

Regulaaravaldised marsruudi parameetrite piirangutena

Eelmises näites lõime tee korrutustabeli genereerimiseks, kuid kuidas tagada, et tee parameeter on tegelikult arv, et vältida vigu korrutustabeli genereerimisel?

Laravelis saate defipiirab marsruudi parameetrit, kasutades meetodit `where` marsruudi eksemplaril. `where` võtab parameetri nime ja selle parameetri regulaaravaldise.

Innovatsiooni uudiskiri
Ärge jätke ilma kõige olulisematest uuendustest. Registreeruge, et saada neid meili teel.

Vaatame nüüd näidet meie parameetri ` piirangust{numero}` veendumaks, et funktsioonile edastatakse ainult arv.

Route:: get ( '/table/{numero?}' , funzione ( $numero = 2 ) {    
   for( $i = 1 ; $i < = 10 ; $i + + ) {   
       echo "$i * $numero = " . $i * $numero . "<br>" ; 
   }   
} )->where( 'numero' , '[0-9]+' ) ;

Ülaltoodud koodis kasutasime tee numbri jaoks regulaaravaldist. Nüüd, kui kasutaja proovib marsruutida aadressile /tabel/nr kuvatakse erand NotFoundHttpException.

Laraveli marsruutimine koos juhtimisfunktsiooniga

Laravelis saate defimäärama marsruudi jaoks kontrolleri meetodi. Kontrolleri meetod teostab kõik toimingud definite iga kord, kui kasutaja marsruudile ligi pääseb.
Järgmise koodiga määrame kontrolleri meetodi 'functionname' marsruudile:

Route:: get ( '/home' , 'YourController@functionname' ) ;

Kood algab tähega `Route::` ja seetõttu defimäärab tee päringumeetodi. Järgnevalt defiLõpetage oma tee ja kontroller koos meetodiga, lisades meetodi nime ette @-sümboli.

Andke teele nimi

Laravelis saate defipane oma teele nimi. See nimi on sageli väga kasulik. Näiteks kui soovite kasutaja ühest asukohast teise suunata, ei pea te seda tegema defitäielik ümbersuunamise URL. Sa võid lihtsalt tema nime anda. Sa saad defimäärake marsruudi nimi meetodiga `name` marsruudi eksemplaris.

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’);

Nüüd saan selle tee URL-i uuesti luua järgmise koodi abil:

$url = route('table');

Samamoodi oleks sellele URL-ile ümbersuunamisel õige süntaks:

return redirect()->route('table');

Route Groups

I Route Groups, sõna otseses mõttes teerühmad, on Laraveli oluline funktsioon, mis võimaldab teid rühmitada. Teerühmad on kasulikud, kui soovite atribuute rakendada kõigile rühmitatud teedele. Kui kasutate teerühmi, ei pea te atribuute igale teele eraldi rakendama. see väldib dubleerimist. See võimaldab teil jagada selliseid atribuute nagu middleware o namespaces, ilma defilõpetage need atribuudid igal üksikul teel. Neid jagatud atribuute saab edastada massiivivormingus meetodi esimese parameetrina Route::group.

Marsruudirühma süntaks

Route::group([], callback);  

tuvi []: on massiiv, mis edastatakse rühmameetodile esimese parameetrina.

Näide Route Group sisse 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" ;   
   });  
});  

Koodis defileiame meetodi Grupp(), mis sisaldab kahte parameetrit, st array e closure. Sees closure, Me saame defilõpeta kui palju route me tahame. Ülaltoodud koodis on meil defilõpetas kolm route.

Kui jõuame URL-ile brauseri kaudu localhost/myproject/first siis sekkub esimene route tippides brauserisse first way route.

Koos URL-iga localhost/myproject/second siis tuleb teine route tippides brauserisse second way route.

Kuigi URL-iga localhost/myproject/third siis tuleb kolmas route tippides brauserisse third way route.

Eesliited Route Groups

Eesliited route neid kasutatakse siis, kui soovime pakkuda mitmele ühist URL-i struktuuri route.

Saame määrata kõigi teede eesliite definites rühma sees, kasutades prefiksi massiivi valikut Route Groups.

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

Kood sisaldab kolme teed, millele pääseb juurde järgmistelt URL-idelt:

/movie/godfather  --->   Godfather casting

/movie/pulpfiction  --->   Pulp Fiction casting

/movie/forrestgump  --->   Forrest Gump casting

Middleware

Samuti saame määrata vahevara kõigile grupi marsruutidele. Vahevara peab olema defilõpetanud enne rühma loomist. Et näha, kuidas seda teha, lugege meie artiklit Laraveli vahevara, kuidas see töötab.

Näide:

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

Teenime eesliited

Meetod name kasutatakse iga nime eesliitena route määratud stringiga. Meetodis name, peame määrama stringi, mille eesliites on lõpumärk.

näide web.php

Route::name('movie.')->group(function()  
{  
   Route::get('users', function()  
   {  
      return "movie.films";  
   })->name('films');  
});  

Ercole Palmeri

Innovatsiooni uudiskiri
Ärge jätke ilma kõige olulisematest uuendustest. Registreeruge, et saada neid meili teel.

Viimased artiklid

Veeam pakub lunavarale kõige põhjalikumat tuge alates kaitsest kuni reageerimise ja taastamiseni

Veeami Coveware jätkab küberväljapressimise juhtumitele reageerimise teenuste pakkumist. Coveware pakub kohtuekspertiisi ja heastamisvõimalusi…

Aprill 23 2024

Roheline ja digitaalne revolutsioon: kuidas ennustav hooldus muudab nafta- ja gaasitööstust

Ennustav hooldus muudab nafta- ja gaasisektori pöördeliseks uuendusliku ja ennetava lähenemisega tehaste juhtimisele.…

Aprill 22 2024

Ühendkuningriigi monopolivastane regulaator tõstab BigTechi häire GenAI pärast

Ühendkuningriigi CMA on väljastanud hoiatuse Big Techi käitumise kohta tehisintellekti turul. Seal…

Aprill 18 2024

Casa Green: energiarevolutsioon jätkusuutliku tuleviku nimel Itaalias

Euroopa Liidu poolt hoonete energiatõhususe suurendamiseks koostatud roheliste majade dekreet on lõpetanud oma seadusandliku protsessi…

Aprill 18 2024