Artikelen

Laravel: inleiding tot laravel-routing

Met routering in Laravel kunnen gebruikers alle applicatieverzoeken naar de juiste controller routeren. De meeste primaire routes in Laravel herkennen en accepteren een Uniform Asset Identifier samen met een sluiting, wat een eenvoudige en expressieve manier van routeren biedt.

Wat is een route (route) ?

Het pad is een manier om een ​​aanvraag-URL voor uw toepassing te maken. Deze URL's hoeven niet te worden gekoppeld aan specifieke bestanden op een website en zijn leesbaar voor mensen en SEO-vriendelijk.

In Laravel worden paden gemaakt in de map le routes. Ze worden aangemaakt in het bestand web.php voor websites, en binnen api.php voor API's.

Deze route worden toegewezen aan de groep middleware netwerk, waarbij de sessiestatus en beveiliging worden benadrukt CSRF. De trajecten binnen route/api.php ze zijn stateless en worden toegewezen aan de API-middlewaregroep.
De voorinstallatiedefiLaravel nita wordt geleverd met twee paden, een voor het web en een voor de API. Zo ziet het pad voor internet eruit web.php:

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

Wat is een route in Laravel?

Alle Laravel-paden zijn definiti in de padbestanden in de map routes. De applicatie voor routebeheer, defiklaar in het dossier App\Providers\RouteServiceProvider, zorgt ervoor dat deze bestanden automatisch worden uitgelijnd. Het bestand route/web.php defivoltooit de paden voor uw webinterface.

u kunt defiVul als volgt een pad in voor deze controlleractie:

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

Route::resource: de methode Route::resource produceert alle basispaden die nodig zijn voor een toepassing en wordt beheerd via de controllerklasse.

Wanneer een aanvraag overeenkomt met de opgegeven route-URI, wordt de methode aangeroepen show defiklaar in de controller App\Http\ControllersUserController, waarbij de routeparameters worden doorgegeven aan de methode.

Voor bronnen moet u twee dingen doen in de toepassing Laravel. Eerst moet u een resourcepad maken op Laravel die paden voor invoegen, bijwerken, bekijken en verwijderen biedt. Maak ten tweede een resourcecontroller die een methode biedt voor invoegen, bijwerken, bekijken en verwijderen.

De voorinstallatiedefiLaravel nita wordt geleverd met twee paden: een voor het web en een voor de API. Zo ziet de route naar het web eruit in web.php:

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

return view(‘welcome’);

});

Laravel-middleware fungeert als een brug tussen de vraag en de reactie. Het kan een soort filtercomponent zijn.

Laravel werk met een middleware die de taak heeft om te bevestigen of de clienttoepassing is geverifieerd of niet. Als de klant is bevestigd, wordt de routering omgeleid naar de startpagina of een inlogpagina.

De methodes voor de route

De vorige code defimaakt een pad naar de startpagina. Wanneer dit pad een verzoek ontvangt get voor /, zal de view welcome

Alle Laravel-paden zijn definiti in je routing, die zich in de map dei bevinden routes. Vervolgens, l'AppProvidersRouteServiceProvider van de applicatie zet deze records op een rij. Het bestand route/web.php bevat de routes die worden beheerd voor uw webinterface.

De padstructuur is heel eenvoudig. Open het juiste bestand (`web.phpo `api.php) en begin de coderegel met `Route:: `, gevolgd door het verzoek dat u aan die specifieke route wilt toewijzen en geef vervolgens de functie op die na het verzoek zal worden uitgevoerd.

Laravel biedt de volgende padmethoden:

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

De paden zijn defigevonden in Laravel binnen de Route-klasse met HTTP, de route om op te antwoorden en te sluiten, of de controller.

Paden maken in Laravel

Laten we eens kijken hoe u uw eigen paden in Laravel kunt maken.

Een eenvoudig GET-pad

Nu ga ik een basispad maken dat de maaltafel van 2 zal afdrukken.

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

In de bovenstaande code heb ik een GET-verzoekpad voor de URL gemaakt /table, waarmee de tijdentabel van 2 op het scherm wordt afgedrukt.

Laten we nu dezelfde code bekijken, het nummer waarvoor we de tafel van vermenigvuldiging willen parametriseren:

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

In de code de 'number' tussen de accolades staat voor de parameter, d.w.z. het getal waarvoor de tafel van vermenigvuldiging zal worden berekend. Telkens wanneer een URL van het type wordt opgegeven /table/n, dan wordt de getallentabel afgedrukt n.

Er is ook een manier om beide functies in één pad te combineren. Laravel biedt de optionele parameterfunctie waarmee u optionele parameters kunt toevoegen met behulp van het vraagteken '?' achter de optionele parameter en de pre-waardedefiavond. Laten we het voorbeeld bekijken:

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

In de bovenstaande code hebben we onze routeparameter gemaakt, waardoor het nummer optioneel is, dus als een gebruiker routeert `/table` dan zal het standaard de tabel van 2 genererendefinite en als een gebruiker naar `/table/{number}Dan de getallentabel 'number' geproduceerd zal worden.

Reguliere expressies als beperkingen voor routeparameters

In het vorige voorbeeld hebben we een pad gemaakt voor het genereren van de tafel van vermenigvuldiging, maar hoe kunnen we ervoor zorgen dat de parameter van het pad daadwerkelijk een getal is, om fouten bij het genereren van de tafel van vermenigvuldiging te voorkomen?

In Laravel kan dat defivoltooi een beperking op de routeparameter met behulp van de methode `where` op de route-instantie. De `where` neemt de parameternaam en een reguliere expressie voor die parameter.

Innovatie nieuwsbrief
Mis het belangrijkste nieuws over innovatie niet. Meld u aan om ze per e-mail te ontvangen.

Laten we nu een voorbeeld bekijken van een beperking voor onze parameter `{numero}` om er zeker van te zijn dat er alleen een getal aan de functie wordt doorgegeven.

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

In de bovenstaande code hebben we een reguliere expressie gebruikt voor het padnummer. Als een gebruiker nu probeert te routeren naar /tafel/nr zal worden vertoond een NotFoundHttpException-uitzondering.

Laravel Routing met besturingsfunctie

In Laravel kan dat defiVoltooi een Controller-methode voor een route. Een controllermethode voert alle acties uit definite elke keer dat een gebruiker de route opent.
Met de volgende code wijzen we de controller-methode toe 'functionname' naar een traject:

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

De code begint met `Route::` en vervolgens defivoltooit de aanvraagmethode voor het pad. Vervolgens, defiBeëindig uw pad en controller samen met de methode door het @-symbool voor de naam van de methode toe te voegen.

Geef het pad een naam

In Laravel kan dat defiBedenk een naam voor je pad. Deze naam is vaak erg handig. Als u bijvoorbeeld een gebruiker van de ene naar de andere locatie wilt omleiden, hoeft dat niet defivoltooi de volledige omleidings-URL. Je kunt gewoon zijn naam geven. Jij kan defiVoltooi de routenaam met behulp van de methode `name` in de route-instantie.

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 zou ik de url voor dit pad opnieuw kunnen genereren met de volgende code:

$url = route('table');

Evenzo zou de juiste syntaxis voor omleiding naar deze URL zijn:

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

Route Groups

I Route Groups, letterlijk padgroepen, is een essentiële functie in Laravel, waarmee je paden kunt groeperen. Padgroepen zijn handig wanneer u attributen wilt toepassen op alle gegroepeerde paden. Als u padgroepen gebruikt, hoeft u de attributen niet afzonderlijk op elk pad toe te passen; dit vermijdt duplicatie. Hiermee kunt u attributen delen zoals middleware o namespaces, senza defivoltooi deze attributen op elk individueel pad. Deze gedeelde attributen kunnen in een array-indeling worden doorgegeven als de eerste parameter aan de methode Route::group.

Syntaxis van een routegroep

Route::group([], callback);  

duif [ ]: is een array die als eerste parameter aan de groepsmethode is doorgegeven.

Voorbeeld van Route Group in 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" ;   
   });  
});  

In de code, defilaten we de methode zoeken groep(), die de twee parameters bevat, d.w.z array e closure. Binnen in de closure, Wij kunnen defiafmaken hoeveel route wij willen. In de bovenstaande code hebben we defiklaar drie route.

Als we via de browser toegang hebben tot de URL localhost/myproject/first dan grijpt de eerste in route typen in de browser first way route.

Met de url localhost/myproject/second dan komt de tweede route typen in de browser second way route.

Terwijl met de URL localhost/myproject/third dan komt de derde route typen in de browser third way route.

Voorvoegsels van Route Groups

De voorvoegsels van route ze worden gebruikt wanneer we een URL-structuur willen bieden die gemeenschappelijk is voor meerdere route.

We kunnen het voorvoegsel voor alle paden specificeren definites binnen de groep met behulp van de prefix array-optie in Route Groups.

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

De code bevat drie paden die toegankelijk zijn via de volgende URL's:

/movie/godfather  --->   Godfather casting

/movie/pulpfiction  --->   Pulp Fiction casting

/movie/forrestgump  --->   Forrest Gump casting

Middleware

We kunnen ook middleware toewijzen aan alle routes binnen een groep. De middleware moet zijn defivoltooid voordat u de groep maakt. Lees ons artikel om te zien hoe u dit doet Laravel-middleware hoe het werkt.

voorbeeld:

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

Voorvoegsels voor padnamen

De methode name wordt gebruikt als voorvoegsel voor elke naam van route met een opgegeven tekenreeks. Bij de methode name, moeten we de tekenreeks specificeren met een volgteken in het voorvoegsel.

Voorbeeld web.php

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

Ercole Palmeri

Innovatie nieuwsbrief
Mis het belangrijkste nieuws over innovatie niet. Meld u aan om ze per e-mail te ontvangen.

Recente artikelen

De toekomst is hier: hoe de scheepvaartindustrie een revolutie teweegbrengt in de wereldeconomie

De marinesector is een echte mondiale economische macht, die is genavigeerd naar een markt van 150 miljard...

1 mei 2024

Uitgevers en OpenAI ondertekenen overeenkomsten om de informatiestroom die door kunstmatige intelligentie wordt verwerkt, te reguleren

Afgelopen maandag maakte de Financial Times een deal met OpenAI bekend. FT geeft licenties voor haar journalistiek van wereldklasse...

April 30 2024

Online betalingen: hier is hoe streamingdiensten u voor altijd laten betalen

Miljoenen mensen betalen voor streamingdiensten en betalen maandelijkse abonnementskosten. De algemene mening is dat je…

April 29 2024

Veeam biedt de meest uitgebreide ondersteuning voor ransomware, van bescherming tot respons en herstel

Coveware by Veeam zal responsdiensten op het gebied van cyberafpersingsincidenten blijven leveren. Coveware zal forensische en herstelmogelijkheden bieden...

April 23 2024