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');
});
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.
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.php
` o `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.
La oss se hvordan du kan lage dine egne stier i Laravel.
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.
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.
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.
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.
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
.
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
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";
});
});
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
Marinesektoren er en ekte global økonomisk makt, som har navigert mot et 150 milliarder marked...
Sist mandag kunngjorde Financial Times en avtale med OpenAI. FT lisensierer sin journalistikk i verdensklasse...
Millioner av mennesker betaler for strømmetjenester og betaler månedlige abonnementsavgifter. Det er vanlig oppfatning at du...
Coveware by Veeam vil fortsette å tilby responstjenester for cyberutpressing. Coveware vil tilby kriminaltekniske og utbedringsmuligheter...