Az elérési út egy kérési URL létrehozásának módja az alkalmazáshoz. Ezeket az URL-címeket nem kell konkrét fájlokhoz társítani a webhelyen, és ember számára is olvashatók és SEO-barátak.
A Laravelben az elérési utak a le mappán belül jönnek létre routes
. A fájlban jönnek létre web.php
webhelyekhez és azon belül api.php
API-khoz.
Ezek route
csoporthoz vannak rendelve middleware
hálózat, kiemelve a munkamenet állapotát és a biztonságot CSRF
. Az útvonalak befelé route/api.php
állapot nélküliek, és az API köztesszoftver-csoporthoz vannak rendelve.
Az előtelepítésdefiA Laravel nita két elérési utat kínál, az egyiket a webhez, a másikat az API-hoz. Így néz ki a webes elérési út web.php
:
Route::get('/', function () {
return view('welcome');
});
Az összes Laravel ösvény definiti a könyvtárban található elérési út fájlokban routes
. Az útvonalkezelő alkalmazás, defiszerepel az aktában App\Providers\RouteServiceProvider
, gondoskodik a fájlok automatikus sorba rendezéséről. A fájl route/web.php
defimegadja a webes felület elérési útjait.
È lehetséges defia következőképpen adja meg a vezérlőművelet elérési útját:
Route::get(‘user/{id}’, ‘UserController@show’);
Route::resource
: a módszer Route::resource
előállítja az alkalmazáshoz szükséges összes alapvető elérési utat, és a vezérlőosztályon keresztül kezeli.
Ha egy kérés megegyezik a megadott útvonal-URI-val, a metódus meghívásra kerül show
defibefejeződött a vezérlőben App\Http\ControllersUserController
, átadja az útvonal paramétereit a metódusnak.
Az erőforrásokhoz két dolgot kell tennie az alkalmazáson Laravel. Először létre kell hoznia egy erőforrás elérési utat a következő helyen Laravel amely beszúrási, frissítési, megtekintési és törlési útvonalakat biztosít. Másodszor, hozzon létre egy erőforrás-vezérlőt, amely módszert biztosít a beszúráshoz, frissítéshez, megtekintéshez és törléshez.
Az előtelepítésdefiA Laravel nita két elérési utat kínál: egyet a webhez és egyet az API-hoz. Így néz ki a webre vezető út a web.php-ben:
Route::get(‘/’, function () {
return view(‘welcome’);
});
Laravel Middleware hídként működik a kérés és a reakció között. Ez lehet valamilyen szűrőelem.
Laravel dolgozzon a middleware amelynek az a feladata, hogy ellenőrizze, hogy az ügyfélalkalmazás ellenőrizve van-e vagy sem. Az ügyfél megerősítése esetén az útválasztás a kezdőlapra vagy egy bejelentkezési oldalra irányít át.
route
Az előző kód defiutat nyit a kezdőlaphoz. Amikor ez az útvonal kérést kap get
mert /
, visszaadja a view
welcome
.
Az összes Laravel ösvény definiti benned routing
, amelyek a dei könyvtárban találhatók routes
. Következésképpen, l'AppProvidersRouteServiceProvider
az alkalmazás sorba rendezi ezeket a rekordokat. A fájl route/web.php
tartalmazza a webes felülethez kezelt útvonalakat.
Az útvonal szerkezete nagyon egyszerű. Nyissa meg a megfelelő fájlt (`web.php
` o `api.php
` ) és kezdje a kódsort ezzel `Route:: `
, majd az adott útvonalhoz rendelni kívánt kérés, majd adja meg a kérést követően végrehajtandó funkciót.
A Laravel a következő útmódszereket kínálja:
get
post
put
delete
patch
options
Az utak vannak definited a Laravelben a Route osztályon belül HTTP-vel, a válasz és a bezárás útvonalával vagy a vezérlővel.
Lássuk, hogyan hozhat létre saját utakat a Laravelben.
Most létrehozok egy alapvető elérési utat, amely kinyomtatja a 2-es időtáblázatot.
Route::get('/table', function () {
for($i =1; $i <= 10 ; $i++){
echo "$i * 2 = ". $i*2 ."<br>";
}
});
A fenti kódban létrehoztam egy GET kérési útvonalat az URL-hez /table
, amely kinyomtatja a 2-es időtáblázatot a képernyőn.
Most lássuk ugyanazt a kódot, paraméterezve azt a számot, amelyhez a szorzótáblát szeretnénk:
Route::get('/table/{number}', function ($number) {
for($i =1; $i <= 10 ; $i++){
echo "$i * $number = ". $i* $number ."<br>";
}
});
A kódban a 'number
A kapcsos zárójelek között a paramétert jelöli, vagyis azt a számot, amelyre a szorzótábla kiszámításra kerül. Amikor egy ilyen típusú URL van megadva /table/n
, akkor a számtábla nyomtatásra kerül n
.
Lehetőség van arra is, hogy a két funkciót egy útvonalon kombinálja. A Laravel kínálja az opcionális paraméterek funkciót, amely lehetővé teszi opcionális paraméterek hozzáadását a „?” kérdőjel használatával. az opcionális paraméter és az előérték utándefivége. Lássuk a példát:
Route::get('/table/{number?}', function ($number = 2) {
for($i =1; $i <= 10 ; $i++){
echo "$i * $number = ". $i* $number ."<br>";
}
});
A fenti kódban létrehoztuk az útvonal paraméterünket, így a szám nem kötelező, így ha egy felhasználó `/table
` akkor alapértelmezés szerint előállítja a 2-es táblátdefinite, és ha egy felhasználó a `/table/{number}
Aztán a számtáblázat 'number'
elő fogják állítani.
Az előző példában létrehoztunk egy elérési utat a szorzótábla generálásához, de hogyan biztosíthatjuk, hogy az útvonal paramétere valóban szám legyen, hogy elkerüljük a hibákat a szorzótábla generálása során?
Laravelben megteheti defia ` metódus használatával korlátozza az útvonal paraméterétwhere
` az útvonalpéldányon. A `where
` veszi a paraméter nevét és a paraméterhez tartozó reguláris kifejezést.
Most lássunk egy példát a ` paraméterünk megszorítására{numero}
` hogy csak egy szám kerüljön átadásra a függvénynek.
Route:: get ( '/table/{numero?}' , funzione ( $numero = 2 ) {
for( $i = 1 ; $i < = 10 ; $i + + ) {
echo "$i * $numero = " . $i * $numero . "<br>" ;
}
} )->where( 'numero' , '[0-9]+' ) ;
A fenti kódban reguláris kifejezést használtunk az elérési út számához. Most, ha a felhasználó megpróbál átirányítani a /tábla/sz jelenik meg egy NotFoundHttpException kivétel.
Laravelben megteheti definish Controller metódust egy elérési úthoz. A vezérlő módszer minden műveletet végrehajt definite minden alkalommal, amikor egy felhasználó hozzáfér az útvonalhoz.
A következő kóddal hozzárendeljük a vezérlő metódusát 'functionname'
egy útvonalra:
Route:: get ( '/home' , 'YourController@functionname' ) ;
A kód ezzel kezdődik `Route::`
és ezért defikiírja az elérési út kérési metódusát. Később, defiFejezze be az elérési utat és a vezérlőt a metódussal együtt úgy, hogy hozzáadja a @ szimbólumot a metódus neve elé.
Laravelben megteheti defiadj nevet az utadnak. Ez a név gyakran nagyon hasznos. Például, ha át szeretne irányítani egy felhasználót egyik helyről a másikra, akkor nem kell defiadja meg a teljes átirányítási URL-t. Csak megadhatod a nevét. tudsz defiadja meg az útvonal nevét a ` metódussalname
` az útvonalpéldányban.
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’);
Most újra generálhatnám ennek az útvonalnak az URL-jét a következő kóddal:
$url = route('table');
Hasonlóképpen, az erre az URL-re való átirányításhoz a helyes szintaxis a következő lenne:
return redirect()->route('table');
Route Groups
I Route Groups
, szó szerint útvonalcsoportok, a Laravel alapvető funkciója, amely lehetővé teszi az útvonalak csoportosítását. Az útvonalcsoportok akkor hasznosak, ha attribútumokat szeretne alkalmazni az összes csoportosított útvonalra. Ha útvonalcsoportokat használ, nem kell az attribútumokat külön-külön alkalmazni minden elérési útra; ezzel elkerülhető a párhuzamosság. Lehetővé teszi olyan attribútumok megosztását, mint pl middleware
o namespaces
, nélkül defifejezze be ezeket az attribútumokat minden egyes útvonalon. Ezek a megosztott attribútumok tömb formátumban adhatók át a metódus első paramétereként Route::group
.
Útvonalcsoport szintaxisa
Route::group([], callback);
galamb []: a group metódusnak első paraméterként átadott tömb.
Például 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" ;
});
});
A kódban, defitaláljuk meg a módszert csoport(), amely a két paramétert tartalmazza, azaz array
e closure
. Benne closure
, Tudunk defifejezd be hányat route
mi akarunk. A fenti kódban megvan defibefejezte a hármat route
.
Ha böngészőn keresztül érjük el az URL-t localhost/myproject/first
akkor az első közbelép route
beírni a böngészőbe first way route
.
Az URL-lel localhost/myproject/second
aztán jön a második route
beírni a böngészőbe second way route
.
Míg az URL-lel localhost/myproject/third
aztán jön a harmadik route
beírni a böngészőbe third way route
.
Route Groups
Az előtagok route
akkor használatosak, ha többre közös URL-struktúrát akarunk biztosítani route
.
Minden útvonalhoz megadhatjuk az előtagot definites a csoporton belül az előtag tömb opció használatával Route Groups
.
Például 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";
});
});
A kód három útvonalat tartalmaz, amelyek a következő URL-ekről érhetők el:
/movie/godfather ---> Godfather casting
/movie/pulpfiction ---> Pulp Fiction casting
/movie/forrestgump ---> Forrest Gump casting
Köztes szoftvert is hozzárendelhetünk egy csoporton belüli összes útvonalhoz. A köztes szoftvernek lennie kell defibefejezte a csoport létrehozása előtt. Ha meg szeretné tudni, hogyan kell ezt megtenni, olvassa el cikkünket Laravel köztes szoftver, hogyan működik.
Esempio:
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";
});
});
A módszer name
minden nevének előtagjaként szolgál route
megadott karakterlánccal. A módszerben name
, meg kell adnunk a karakterláncot egy záró karakterrel az előtagban.
példa web.php
Route::name('movie.')->group(function()
{
Route::get('users', function()
{
return "movie.films";
})->name('films');
});
Ercole Palmeri
Szemplasztikai műtétet végeztek az Apple Vision Pro reklámmegjelenítővel a Catania Poliklinikán…
A finom motoros készségek színezéssel történő fejlesztése felkészíti a gyerekeket olyan összetettebb készségekre, mint az írás. Kiszínezni…
A haditengerészeti szektor igazi világgazdasági hatalom, amely egy 150 milliárdos piac felé navigált...
Múlt hétfőn a Financial Times bejelentette, hogy megállapodást köt az OpenAI-val. Az FT engedélyezi világszínvonalú újságírását…