Artiklar

Laravel: introduktion till laravel routing

Routing i Laravel tillåter användare att dirigera alla applikationsförfrågningar till lämplig styrenhet. De flesta primära rutter i Laravel känner igen och accepterar en Uniform Asset Identifier tillsammans med en stängning, vilket ger ett enkelt och uttrycksfullt sätt att dirigera.

Vad är en rutt (rutt)?

Sökvägen är ett sätt att skapa en begäran-URL för din applikation. Dessa webbadresser behöver inte associeras med specifika filer på en webbplats och är läsbara för människor och SEO-vänliga.

I Laravel skapas sökvägar inuti le-mappen routes. De skapas i filen web.php för webbplatser och inom api.php för API:er.

Dessa route är tilldelade gruppen middleware nätverk, framhäver sessionsstatus och säkerhet CSRF. Vägarna in route/api.php de är tillståndslösa och tilldelas API-mellanvarugruppen.
FörinstallationendefiLaravel nita kommer med två sökvägar, en för webben och en för API. Så här ser vägen för webb in web.php:

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

Vad är en rutt i Laravel?

Alla Laravel-stigar är definiti i sökvägsfilerna som finns i katalogen routes. Rutthanteringsapplikationen, defifinns i filen App\Providers\RouteServiceProvider, tar hand om att automatiskt rada dessa filer. Filen route/web.php defiavslutar vägarna för ditt webbgränssnitt.

Det är möjligt defiskapa en sökväg för denna kontrollåtgärd enligt följande:

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

Route::resource: metoden Route::resource producerar alla grundläggande sökvägar som krävs för en applikation och hanteras genom controllerklassen.

När en begäran matchar den angivna rutt-URI, anropas metoden show defifärdig i styrenheten App\Http\ControllersUserController, skickar ruttparametrarna till metoden.

För resurser måste du göra två saker på applikationen laravel. Först måste du skapa en resursväg på laravel som tillhandahåller infoga, uppdatera, visa och ta bort sökvägar. För det andra, skapa en resurskontroller som tillhandahåller en metod för att infoga, uppdatera, visa och ta bort.

FörinstallationendefiLaravel nita kommer med två sökvägar: en för webben och en för API. Så här ser vägen till webben ut i web.php:

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

return view(‘welcome’);

});

Laravel Mellanvara fungerar som en brygga mellan begäran och reaktionen. Det kan vara någon slags filterkomponent.

laravel arbeta med en middleware som har till uppgift att bekräfta om klientapplikationen är verifierad eller inte. Om klienten bekräftas, omdirigerar routing till startsidan eller en inloggningssida.

Metoderna för route

Den föregående koden defileder en väg till startsidan. Närhelst den här sökvägen får en begäran get för /, kommer att returnera view welcome

Alla Laravel-stigar är definiti i din routing, som finns i katalogen dei routes. Följaktligen, l'AppProvidersRouteServiceProvider av ansökan radar upp dessa poster. Filen route/web.php innehåller de rutter som hanteras för ditt webbgränssnitt.

Banstrukturen är mycket enkel. Öppna lämplig fil (`web.phpo `api.php) och starta kodraden med `Route:: `, följt av den begäran du vill tilldela den specifika rutten och ange sedan den funktion som ska utföras efter begäran.

Laravel erbjuder följande vägmetoder:

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

Banorna är defiinlagd i Laravel inom klassen Route med HTTP, vägen att svara på och stänga, eller styrenheten.

Hur man skapar stigar i Laravel

Låt oss se hur du kan skapa dina egna vägar i Laravel.

En grundläggande GET-väg

Nu ska jag skapa en grundläggande sökväg som kommer att skriva ut tidtabellen för 2.

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

I koden ovan skapade jag en GET-begäransökväg för URL:en /table, som kommer att skriva ut tidtabellen för 2 på skärmen.

Låt oss nu se samma kod, parametrar numret som vi vill ha multiplikationstabellen för:

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

I koden 'number' mellan klammerparenteserna representerar parametern, det vill säga talet för vilket multiplikationstabellen kommer att beräknas. Närhelst en URL av typen anges /table/n, så skrivs nummertabellen ut n.

Det finns också ett sätt att kombinera båda funktionerna i en väg. Laravel erbjuder funktionen för valfria parametrar som låter dig lägga till valfria parametrar med frågetecknet "?" efter den valfria parametern och pre-värdetdefinatt. Låt oss se exemplet:

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

I koden ovan skapade vi vår ruttparameter, vilket gör numret valfritt, så om en användare ruttar `/table` då genererar den tabellen med 2 som standarddefinite och om en användare ruttar till `/table/{number}Sedan siffertabellen 'number' kommer att produceras.

Reguljära uttryck som begränsningar för ruttparametrar

I föregående exempel skapade vi en sökväg för att generera multiplikationstabellen, men hur kan vi säkerställa att parametern för sökvägen faktiskt är ett tal, för att undvika fel när multiplikationstabellen genereras?

I Laravel kan du defiskapa en begränsning på ruttparametern med hjälp av `-metodenwhere` på ruttinstansen. Den `where` tar parameternamnet och ett reguljärt uttryck för den parametern.

Nyhetsbrev för innovation
Missa inte de viktigaste nyheterna om innovation. Registrera dig för att få dem via e-post.

Låt oss nu se ett exempel på en begränsning för vår `-parameter{numero}` för att säkerställa att endast ett nummer skickas till funktionen.

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

I ovanstående kod använde vi ett reguljärt uttryck för sökvägsnumret. Nu, om en användare försöker dirigera till /tabell/nr kommer att visas ett NotFoundHttpException-undantag.

Laravel Routing med kontrollfunktion

I Laravel kan du definish en Controller-metod för en sökväg. En kontrollmetod utför alla åtgärder definite varje gång en användare kommer åt rutten.
Med följande kod tilldelar vi kontrollmetoden 'functionname' till en rutt:

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

Koden börjar med `Route::` och sedan defiavslutar förfrågningsmetoden för sökvägen. Senare, defiAvsluta din sökväg och styrenhet tillsammans med metoden genom att lägga till @-symbolen före metodnamnet.

Ge sökvägen ett namn

I Laravel kan du definish ett namn på din väg. Detta namn är ofta mycket användbart. Om du till exempel vill omdirigera en användare från en plats till en annan behöver du inte göra det defiavsluta hela omdirigeringsadressen. Du kan bara ge hans namn. Du kan defiavsluta ruttnamnet med `-metodenname` i ruttinstansen.

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

Nu kunde jag återskapa webbadressen för den här sökvägen, genom följande kod:

$url = route('table');

På liknande sätt, för omdirigering till denna URL, skulle den korrekta syntaxen vara:

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

Route Groups

I Route Groups, bokstavligen väggrupper, är en viktig funktion i Laravel, som låter dig gruppera sökvägar. Sökvägsgrupper är användbara när du vill tillämpa attribut på alla grupperade sökvägar. Om du använder sökvägsgrupper behöver du inte tillämpa attributen individuellt på varje sökväg. detta undviker dubbelarbete. Det låter dig dela attribut som middleware o namespaces, utan defiavsluta dessa attribut på varje enskild väg. Dessa delade attribut kan skickas i ett arrayformat som den första parametern till metoden Route::group.

Syntax för en ruttgrupp

Route::group([], callback);  

duva []: är en matris som skickas till gruppmetoden som första parameter.

Exempel 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, defilåt oss hitta metoden grupp(), som innehåller de två parametrarna, dvs array e closure. Inuti closure, Vi kan defiavsluta hur många route Vi vill. I ovanstående kod har vi defislutade tre route.

Om vi ​​kommer åt webbadressen via webbläsaren localhost/myproject/first då ingriper den första route skriver i webbläsaren first way route.

Med URL:en localhost/myproject/second sedan kommer den andra route skriver i webbläsaren second way route.

Medan med URL:en localhost/myproject/third sedan kommer den tredje route skriver i webbläsaren third way route.

Prefix för Route Groups

Prefixen till route de används när vi vill tillhandahålla en URL-struktur som är gemensam för flera route.

Vi kan ange prefixet för alla sökvägar definites inom gruppen med hjälp av prefixarrayalternativet i Route Groups.

Exempel 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 innehåller tre sökvägar som kan nås från följande webbadresser:

/movie/godfather  --->   Godfather casting

/movie/pulpfiction  --->   Pulp Fiction casting

/movie/forrestgump  --->   Forrest Gump casting

middle~~POS=TRUNC

Vi kan också tilldela middleware till alla rutter inom en grupp. Mellanvaran måste vara defiavslutade innan gruppen skapades. För att se hur du gör detta, läs vår artikel Laravel middleware hur det fungerar.

exempel:

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

Sökvägsnamnsprefix

Metoden name används för att prefixa varje namn på route med en angiven sträng. I metoden namemåste vi ange strängen med ett efterföljande tecken i prefixet.

exempel web.php

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

Ercole Palmeri

Nyhetsbrev för innovation
Missa inte de viktigaste nyheterna om innovation. Registrera dig för att få dem via e-post.

Articoli recenti

Fördelarna med målarbok för barn - en värld av magi för alla åldrar

Att utveckla finmotorik genom färgläggning förbereder barn för mer komplexa färdigheter som att skriva. Att färglägga…

2 maj 2024

Framtiden är här: Hur sjöfartsindustrin revolutionerar den globala ekonomin

Marinesektorn är en sann global ekonomisk makt, som har navigerat mot en marknad på 150 miljarder...

1 maj 2024

Publishers och OpenAI tecknar avtal för att reglera flödet av information som bearbetas av artificiell intelligens

I måndags tillkännagav Financial Times ett avtal med OpenAI. FT licensierar sin journalistik i världsklass...

30 April 2024

Onlinebetalningar: Här är hur streamingtjänster får dig att betala för alltid

Miljontals människor betalar för streamingtjänster och betalar månatliga prenumerationsavgifter. Det är en allmän uppfattning att du...

29 April 2024