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');
});
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.
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.php
` o `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.
Laten we eens kijken hoe u uw eigen paden in Laravel kunt maken.
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.
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.
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.
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.
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
.
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
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";
});
});
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
De marinesector is een echte mondiale economische macht, die is genavigeerd naar een markt van 150 miljard...
Afgelopen maandag maakte de Financial Times een deal met OpenAI bekend. FT geeft licenties voor haar journalistiek van wereldklasse...
Miljoenen mensen betalen voor streamingdiensten en betalen maandelijkse abonnementskosten. De algemene mening is dat je…
Coveware by Veeam zal responsdiensten op het gebied van cyberafpersingsincidenten blijven leveren. Coveware zal forensische en herstelmogelijkheden bieden...