Cikkek

Laravel: bevezetés a laravel útválasztásba

Az útválasztás a Laravelben lehetővé teszi a felhasználók számára, hogy az összes alkalmazáskérést a megfelelő vezérlőhöz irányítsák. A Laravel legtöbb elsődleges útvonala felismeri és elfogadja az egységes eszközazonosítót a lezárással együtt, egyszerű és kifejező útválasztási módot biztosítva.

Mi az útvonal (útvonal)?

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

Mi az az útvonal Laravelben?

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.

A módszerek a 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.phpo `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.

Hogyan készítsünk utakat a Laravelben

Lássuk, hogyan hozhat létre saját utakat a Laravelben.

Egy alapvető GET-útvonal

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 'numberA 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.

Reguláris kifejezések az útvonalparaméterek kényszereiként

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.

Innovációs hírlevél
Ne maradjon le az innovációval kapcsolatos legfontosabb hírekről. Regisztráljon, hogy megkapja őket e-mailben.

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.

Laravel Routing vezérlő funkcióval

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é.

Adj nevet az útvonalnak

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.

Előtagjai 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

middleware

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

Útvonalnév előtagok

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

Innovációs hírlevél
Ne maradjon le az innovációval kapcsolatos legfontosabb hírekről. Regisztráljon, hogy megkapja őket e-mailben.

Friss cikkek

Innovatív beavatkozás a kiterjesztett valóságba, egy Apple nézővel a Catania Poliklinikán

Szemplasztikai műtétet végeztek az Apple Vision Pro reklámmegjelenítővel a Catania Poliklinikán…

Május 3 2024

A színező oldalak előnyei gyerekeknek – a varázslatok világa minden korosztály számára

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…

Május 2 2024

A jövő itt van: Hogyan forradalmasítja a hajózási ágazat a globális gazdaságot

A haditengerészeti szektor igazi világgazdasági hatalom, amely egy 150 milliárdos piac felé navigált...

Május 1 2024

A kiadók és az OpenAI megállapodásokat írnak alá a mesterséges intelligencia által feldolgozott információáramlás szabályozására

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…

30 április 2024