Artikler

Laravel: introduksjon til laravelruting

Ruting i Laravel lar brukere rute alle applikasjonsforespørsler til riktig kontroller. De fleste primærruter i Laravel gjenkjenner og aksepterer en enhetlig aktivaidentifikator sammen med en lukking, noe som gir en enkel og uttrykksfull måte å rute.

Hva er en rute (rute)?

Banen er en måte å opprette en forespørsels-URL for applikasjonen din. Disse nettadressene trenger ikke å være knyttet til spesifikke filer på et nettsted og er lesbare og SEO-vennlige.

I Laravel opprettes stier inne i le-mappen routes. De opprettes i filen web.php for nettsteder og innenfor api.php for APIer.

Disse route er tildelt gruppen middleware nettverk, fremhever øktstatus og sikkerhet CSRF. Rutene i route/api.php de er statsløse og er tilordnet API-mellomvaregruppen.
ForhåndsinstallasjonendefiLaravel nita kommer med to baner, en for nettet og en for API. Slik ser banen for web inn ut web.php:

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

Hva er en rute i Laravel?

Alle Laravel-stier er definiti i banefilene som ligger i katalogen routes. Ruteadministrasjonsapplikasjonen, defiferdig i filen App\Providers\RouteServiceProvider, tar seg av automatisk oppstilling av disse filene. Filen route/web.php defiavslutter banene for webgrensesnittet ditt.

Det er mulig definish en bane for denne kontrollerhandlingen som følger:

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

Route::resource: metoden Route::resource produserer alle de grunnleggende banene som kreves for en applikasjon og administreres gjennom kontrollerklassen.

Når en forespørsel samsvarer med den angitte rute-URI, blir metoden påkalt show defiferdig i kontrolleren App\Http\ControllersUserController, sender ruteparametrene til metoden.

For ressurser må du gjøre to ting på applikasjonen Laravel. Først må du opprette en ressursbane på Laravel som gir innsetting, oppdatering, visning og sletting av baner. For det andre, lag en ressurskontroller som gir en metode for å sette inn, oppdatere, vise og slette.

ForhåndsinstallasjonendefiLaravel nita kommer med to baner: en for nettet og en for API. Slik ser ruten til nettet ut i web.php:

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

return view(‘welcome’);

});

Laravel mellomvare fungerer som en bro mellom forespørselen og reaksjonen. Det kan være en slags filterkomponent.

Laravel jobbe med en mellomvare som har som oppgave å bekrefte om klientapplikasjonen er verifisert eller ikke. I tilfelle klienten er bekreftet, omdirigerer ruting til hjemmesiden eller en påloggingsside.

Metodene for route

Den forrige koden defigår en vei til hjemmesiden. Hver gang denne banen mottar en forespørsel get for /, vil returnere view welcome

Alle Laravel-stier er definiti i din routing, som er plassert inne i katalogen dei routes. Følgelig l'AppProvidersRouteServiceProvider av søknaden stiller opp disse postene. Filen route/web.php inneholder rutene som administreres for webgrensesnittet ditt.

Stistrukturen er veldig enkel. Åpne den aktuelle filen (`web.phpo `api.php) og start kodelinjen med `Route:: `, etterfulgt av forespørselen du vil tilordne den spesifikke ruten, og spesifiser deretter funksjonen som skal utføres etter forespørselen.

Laravel tilbyr følgende stimetoder:

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

Stiene er defioppført i Laravel innenfor ruteklassen med HTTP, ruten å svare på og lukke, eller kontrolleren.

Hvordan lage stier i Laravel

La oss se hvordan du kan lage dine egne stier i Laravel.

En grunnleggende GET-vei

Nå skal jeg lage en grunnleggende bane som vil skrive ut tidstabellen for 2.

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

I koden ovenfor opprettet jeg en GET-forespørselsbane for URL-en /table, som vil skrive ut tidstabellen på 2 på skjermen.

La oss nå se den samme koden, parametrisering av tallet som vi vil ha multiplikasjonstabellen for:

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

I koden «number' mellom klammeparentesene representerer parameteren, dvs. tallet som multiplikasjonstabellen skal beregnes for. Når en URL av typen er spesifisert /table/n, så skrives talltabellen ut n.

Det er også en måte å kombinere begge funksjonene i én vei. Laravel tilbyr den valgfrie parameterfunksjonen som lar deg legge til valgfrie parametere ved å bruke spørsmålstegnet '?' etter den valgfrie parameteren og forhåndsverdiendefikveld. La oss se eksempelet:

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

I koden ovenfor opprettet vi ruteparameteren vår, noe som gjør tallet valgfritt, så hvis en bruker ruter `/table` så vil den generere tabellen med 2 som standarddefinite og hvis en bruker ruter til `/table/{number}Så talltabellen 'number' vil bli produsert.

Regulære uttrykk som begrensninger for ruteparametere

I forrige eksempel laget vi en bane for generering av multiplikasjonstabellen, men hvordan kan vi sikre at parameteren til banen faktisk er et tall, for å unngå feil ved generering av multiplikasjonstabellen?

I Laravel kan du definish en begrensning på ruteparameteren ved å bruke `-metodenwhere` på ruteforekomsten. Den `where` tar parameternavnet og et regulært uttrykk for den parameteren.

Nyhetsbrev for innovasjon
Ikke gå glipp av de viktigste nyhetene om innovasjon. Registrer deg for å motta dem på e-post.

La oss nå se et eksempel på en begrensning for parameteren vår{numero}` for å sikre at bare et tall sendes til funksjonen.

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

I koden ovenfor brukte vi et regulært uttrykk for stinummeret. Nå, hvis en bruker prøver å rute til /tabell/nr vil vises et NotFoundHttpException-unntak.

Laravel Routing med kontrollfunksjon

I Laravel kan du definish en Controller-metode for en bane. En kontrollermetode utfører alle handlinger definite hver gang en bruker får tilgang til ruten.
Med følgende kode tildeler vi kontrollermetoden 'functionname' til en rute:

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

Koden begynner med `Route::` og derfor defiavslutter forespørselsmetoden for banen. I ettertid, defiFullfør banen og kontrolleren sammen med metoden ved å legge til @-symbolet foran metodenavnet.

Gi banen et navn

I Laravel kan du definish et navn på veien din. Dette navnet er ofte veldig nyttig. For eksempel, hvis du ønsker å omdirigere en bruker fra ett sted til et annet, trenger du ikke defifullføre den fullstendige omdirigerings-URLen. Du kan bare oppgi navnet hans. Du kan defifullfør rutenavnet ved å bruke `-metodenname` i ruteforekomsten.

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å kunne jeg gjenskape nettadressen for denne banen, gjennom følgende kode:

$url = route('table');

På samme måte, for å omdirigere til denne nettadressen, vil riktig syntaks være:

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

Route Groups

I Route Groups, bokstavelig talt stigrupper, er en viktig funksjon i Laravel, som lar deg gruppere stier. Banegrupper er nyttige når du vil bruke attributter på alle grupperte baner. Hvis du bruker banegrupper, trenger du ikke bruke attributtene individuelt på hver bane. dette unngår duplisering. Den lar deg dele attributter som middleware o namespaces, uten defifullfør disse attributtene på hver enkelt vei. Disse delte attributtene kan sendes i et matriseformat som den første parameteren til metoden Route::group.

Syntaks for en rutegruppe

Route::group([], callback);  

due [ ]: er en matrise som sendes til gruppemetoden som den første parameteren.

Eksempel av Route Group nel 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" ;   
   });  
});  

I koden, defila oss finne metoden gruppe(), som inneholder de to parameterne, dvs array e closure. Inne i closure, Vi kan defifullfør hvor mange route vi vil. I koden ovenfor har vi defifullførte tre route.

Hvis vi får tilgang til URL-en via nettleseren localhost/myproject/first så griper den første inn route skriver i nettleseren first way route.

Med URL localhost/myproject/second så kommer den andre route skriver i nettleseren second way route.

Mens med URL localhost/myproject/third så kommer den tredje route skriver i nettleseren third way route.

Prefikser til Route Groups

Prefiksene til route de brukes når vi ønsker å gi en URL-struktur som er felles for flere route.

Vi kan spesifisere prefikset for alle stier definites i gruppen ved å bruke prefiksarray-alternativet i Route Groups.

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

Koden inneholder tre stier som kan nås fra følgende URL-er:

/movie/godfather  --->   Godfather casting

/movie/pulpfiction  --->   Pulp Fiction casting

/movie/forrestgump  --->   Forrest Gump casting

Middleware

Vi kan også tildele mellomvare til alle ruter i en gruppe. Mellomvaren må være defiferdig før du opprettet gruppen. For å se hvordan du gjør dette, les artikkelen vår Laravel mellomvare hvordan det fungerer.

eksempel:

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

Stinavnsprefikser

Metoden name brukes til å prefiksere hvert navn på route med en spesifisert streng. I metoden name, må vi spesifisere strengen med et etterfølgende tegn i prefikset.

eksempel web.php

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

Ercole Palmeri

Nyhetsbrev for innovasjon
Ikke gå glipp av de viktigste nyhetene om innovasjon. Registrer deg for å motta dem på e-post.

Siste artikler

Fremtiden er her: Hvordan shippingindustrien revolusjonerer den globale økonomien

Marinesektoren er en ekte global økonomisk makt, som har navigert mot et 150 milliarder marked...

1 mai 2024

Utgivere og OpenAI signerer avtaler for å regulere flyten av informasjon som behandles av kunstig intelligens

Sist mandag kunngjorde Financial Times en avtale med OpenAI. FT lisensierer sin journalistikk i verdensklasse...

30 april 2024

Nettbetalinger: Her er hvordan strømmetjenester får deg til å betale for alltid

Millioner av mennesker betaler for strømmetjenester og betaler månedlige abonnementsavgifter. Det er vanlig oppfatning at du...

29 april 2024

Veeam har den mest omfattende støtten for løsepengevare, fra beskyttelse til respons og gjenoppretting

Coveware by Veeam vil fortsette å tilby responstjenester for cyberutpressing. Coveware vil tilby kriminaltekniske og utbedringsmuligheter...

23 april 2024