Artikelen

Laravel: Aféierung fir Laravel Routing

Routing am Laravel erlaabt d'Benotzer all Applikatiounsufroen un de passenden Controller ze routen. Déi meescht primär Strecken zu Laravel erkennen an akzeptéieren en Uniform Asset Identifier zesumme mat enger Zoumaache, déi en einfachen an expressiver Wee vu Routing ubitt.

Wat ass eng Streck (Streck)?

De Wee ass e Wee fir eng Ufro URL fir Är Uwendung ze kreéieren. Dës URLen mussen net mat spezifesche Dateien op enger Websäit verbonne sinn a si mënschlech liesbar a SEO frëndlech.

A Laravel gi Weeër am le Dossier erstallt routes. Si ginn an der Datei erstallt web.php fir Websäiten, a bannent api.php fir APIen.

Dës route ginn dem Grupp zougewisen middleware Netzwierk, Highlight Sessiounsstatus a Sécherheet CSRF. D'Strecken an route/api.php si sinn stateless a sinn zu der API Middleware Grupp zougewisen.
D'Pre-InstallatioundefiLaravel nita kënnt mat zwee Weeër, ee fir de Web an ee fir d'API. Dëst ass wéi de Wee fir Web an ausgesäit web.php:

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

Wat ass eng Streck zu Laravel?

All Laravel Weeër sinn definiti an de Weedateien, déi am Verzeechnes sinn routes. D'Route Management Applikatioun, defiam Dossier ofgeschloss App\Providers\RouteServiceProvider, këmmert sech ëm dës Dateien automatesch opzestellen. De Fichier route/web.php definishes de Weeër fir Är Web Interface.

Et ass méiglech definish e Wee fir dës Controlleraktioun wéi follegt:

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

Route::resource: Method Route::resource produzéiert all Basisweeër déi fir eng Applikatioun erfuerderlech sinn a gëtt duerch d'Controllerklass geréiert.

Wann eng Ufro mat der spezifizéierter Streck URI entsprécht, gëtt d'Method opgeruff show defiam Controller fäerdeg App\Http\ControllersUserController, de Wee Parameteren un d'Method weiderginn.

Fir Ressourcen, musst Dir zwou Saachen op der Applikatioun maachen Laravel. Als éischt musst Dir e Ressourcewee erstellen Laravel dat stellt Insert, Update, Vue a läschen Weeër. Zweetens, erstellt e Ressource Controller deen eng Method ubitt fir ze setzen, ze aktualiséieren, ze kucken an ze läschen.

D'Pre-InstallatioundefiLaravel nita kënnt mat zwee Weeër: ee fir de Web an ee fir d'API. Hei ass wéi de Wee op de Web am web.php ausgesäit:

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

return view(‘welcome’);

});

Laravel Middleware wierkt als Bréck tëscht der Demande an der Reaktioun. Et kann eng Zort Filterkomponent sinn.

Laravel schaffen mat engem Mëttelstuf déi d'Aufgab huet ze bestätegen ob d'Clientapplikatioun verifizéiert ass oder net. Am Fall wou de Client bestätegt ass, da routing Viruleedungen op d'Homepage oder eng Login Säit.

D'Methoden fir de route

De fréiere Code definishes e Wee op d'Homepage. All Kéier wann dës Streck eng Demande kritt get pro /, wäert zréck der view welcome

All Laravel Weeër sinn definit an Ärem routing, déi am Verzeechnes dei sinn routes. Konsequenz, l'AppProvidersRouteServiceProvider vun der Applikatioun Linnen dës records. De Fichier route/web.php enthält d'Strecken déi fir Är Webinterface geréiert ginn.

D'Struktur vum Wee ass ganz einfach. Öffnen déi entspriechend Datei (`web.phpo `api.php) an ufänken der Linn vum Code mat `Route:: `, gefollegt vun der Ufro déi Dir un dee spezifesche Wee wëllt zouzeschreiwen an dann d'Funktioun uginn déi no der Ufro ausgefouert gëtt.

Laravel bitt déi folgend Weemethoden:

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

D'Weeër sinn defian Laravel an der Route Klass mat HTTP, de Wee fir ze äntweren an d'Zoumaache, oder de Controller.

Wéi erstellen Weeër zu Laravel

Loosst eis kucken wéi Dir Är eege Weeër zu Laravel erstellt.

Eng Basis GET Wee

Elo wäert ech e Basiswee erstellen deen den Zäittabelle vun 2 dréckt.

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

Am uewe genannte Code hunn ech e GET Ufro Wee fir d'URL erstallt /table, déi d'Zäittabelle vun 2 um Écran dréckt.

Loosst eis elo dee selwechte Code gesinn, d'Zuel parametriséieren fir déi mir d'Multiplikatiounstabell wëllen:

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

Am Code de 'number' tëscht de Klameren representéiert de Parameter, dh d'Zuel fir déi d'Multiplikatiounstabell berechent gëtt. Wann ëmmer eng URL vun der Zort uginn ass /table/n, da gëtt d'Zuelentabell gedréckt n.

Et gëtt och de Wee fir béid Funktiounen an engem Wee ze kombinéieren. Laravel bitt déi optional Parameter Feature déi Iech erlaabt optional Parameteren derbäi ze setzen mat der Fragezeechen '?' no der optionaler Parameter an der Pre-Wäertdefinett. Loosst eis d'Beispill gesinn:

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

Am Code hei uewen hu mir eise Routeparameter erstallt, wat d'Zuel fakultativ mécht, also wann e Benotzer routes `/table` dann generéiert et den Dësch vun 2 par défautdefinite a wann e Benotzer op `/table/{number}Dann d'Zuelen Dësch 'number' wäert produzéiert ginn.

Regelméisseg Ausdréck als Aschränkungen fir Streckparameter

Am virege Beispill hu mir e Wee erstallt fir d'Multiplikatiounstabell ze generéieren, awer wéi kënne mir suergen datt de Parameter vum Wee tatsächlech eng Zuel ass, fir Feeler ze vermeiden wann Dir d'Multiplikatiounstabell generéiert?

Zu Laravel kënnt Dir definish eng Beschränkung op de Routeparameter mat der `Methodewhere` op der Streck Beispill. Den `where` hëlt de Parameternumm an e reegelméissegen Ausdrock fir dee Parameter.

Innovatioun Newsletter
Verpasst net déi wichtegst Neiegkeeten iwwer Innovatioun. Registréiert Iech fir se per E-Mail ze kréien.

Loosst eis elo e Beispill vun enger Aschränkung fir eise `Parameter{numero}` fir sécherzestellen datt nëmmen eng Zuel un d'Funktioun weidergeleet gëtt.

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

Am uewe genannte Code hu mir e reguläre Ausdrock fir d'Padnummer benotzt. Elo, wann e Benotzer probéiert ze route ze /table/no wäert ugewisen ginn eng NotFoundHttpException Ausnam.

Laravel Routing mat Kontrollfunktioun

Zu Laravel kënnt Dir definish engem Controller Method fir eng Streck. Eng Controllermethod mécht all Aktiounen definet all Kéier wann e Benotzer op d'Streck zougräift.
Mat de folgende Code ginn mir d'Controllermethod zou 'functionname' op eng Streck:

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

De Code fänkt mat `Route::` an dofir definishes der Ufro Method fir de Wee. Duerno, defiFäerdeg Äre Wee a Controller zesumme mat der Method andeems Dir de @ Symbol virum Methodnumm bäidréit.

Gitt de Wee en Numm

Zu Laravel kënnt Dir definish en Numm fir Äre Wee. Dësen Numm ass dacks ganz nëtzlech. Zum Beispill, wann Dir e Benotzer vun enger Plaz op déi aner wëllt redirectéieren, musst Dir net definish déi voll Viruleedung URL. Dir kënnt just säin Numm ginn. Du kanns definish de Routenumm mat der `Methodename` an der Streck Beispill.

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’);

Elo konnt ech d'URL fir dëse Wee regeneréieren, duerch de folgende Code:

$url = route('table');

Ähnlech, fir op dës URL ze redirectéieren, wier déi richteg Syntax:

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

Route Groups

I Route Groups, wuertwiertlech Weegruppen, ass eng wesentlech Feature am Laravel, wat Iech erlaabt Iech Weeër ze gruppéieren. Weegruppen sinn nëtzlech wann Dir Attributer op all gruppéiert Weeër wëllt applizéieren. Wann Dir Wee Gruppen benotzt, Dir musst d'Attributer net individuell op all Wee gëllen; dëst evitéiert Duplikatioun. Et erlaabt Iech Attributer ze deelen wéi middleware o namespaces, senz defifäerdeg dës Attributer op all eenzelne Wee. Dës gedeelt Attributer kënnen an engem Arrayformat als éischten Parameter un d'Methode weidergeleet ginn Route::group.

Syntax vun enger Route Group

Route::group([], callback);  

Dauf []: ass eng Array un d'Gruppmethod als éischten Parameter weiderginn.

Beispill vun Route Group an 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" ;   
   });  
});  

Am Code, defiloosst eis d'Method fannen group(), deen déi zwee Parameteren enthält, d.h array e closure. Bannen der closure, mir kënnen defifäerdeg wéivill route mir wëllen. Am uewe genannte Code hu mir defifäerdeg dräi route.

Wa mir iwwer Browser Zougang zu der URL localhost/myproject/first dann intervenéiert deen Éischten route am Browser schreiwen first way route.

Mat der URL localhost/myproject/second dann kënnt déi zweet route am Browser schreiwen second way route.

Wärend mat der URL localhost/myproject/third dann kënnt déi drëtt route am Browser schreiwen third way route.

Präfixe vun Route Groups

D'Präfixe vun route si gi benotzt wa mir eng URL-Struktur ubidden, déi gemeinsam ass fir Multiple route.

Mir kënnen de Präfix fir all Weeër uginn definites bannent der Grupp mat der Präfix Array Optioun an Route Groups.

Beispill vun 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 enthält dräi Weeër déi vun de folgenden URLen zougänglech sinn:

/movie/godfather  --->   Godfather casting

/movie/pulpfiction  --->   Pulp Fiction casting

/movie/forrestgump  --->   Forrest Gump casting

Middleware

Mir kënnen och Middleware zu all routes bannent engem Grupp zougewisen. D'Mëttelware muss sinn defifäerdeg ier de Grupp erstallt gouf. Fir ze kucken wéi Dir dëst maacht, liest eisen Artikel Laravel Middleware wéi et funktionnéiert.

Beispill:

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

Wee Numm Präfixe

D'Method name gëtt benotzt fir all Numm ze prefixéieren route mat engem spezifizéierte String. An der Method name, Mir mussen d'String mat engem hannendrun Charakter am Präfix spezifizéieren.

Beispill web.php

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

Ercole Palmeri

Innovatioun Newsletter
Verpasst net déi wichtegst Neiegkeeten iwwer Innovatioun. Registréiert Iech fir se per E-Mail ze kréien.

Recent Artikelen

D'Virdeeler vu Faarwen Säiten fir Kanner - eng Welt vu Magie fir all Alter

D'Entwécklung vu Feinmotorik duerch Faarwen bereet d'Kanner op méi komplex Fäegkeeten wéi Schreiwen vir. Fir ze faarwen ...

2 Mee 2024

D'Zukunft ass hei: Wéi d'Schëfferindustrie d'Weltwirtschaft revolutionéiert

De Marinesecteur ass eng richteg global wirtschaftlech Muecht, déi op e 150 Milliarde Maart navigéiert ass ...

1 Mee 2024

Verëffentlecher an OpenAI ënnerschreiwen Ofkommes fir de Flux vun Informatioun ze regléieren, déi vu Kënschtlech Intelligenz veraarbecht gëtt

De leschte Méindeg huet d'Financial Times en Deal mat OpenAI ugekënnegt. FT lizenzéiert säi Weltklass Journalismus ...

30 Abrëll 2024

Online Bezuelungen: Hei ass wéi Streaming Servicer Iech fir ëmmer bezuelen

Millioune vu Leit bezuelen fir Streaming Servicer, a bezuelen monatlecht Abonnementskäschte. Et ass allgemeng Meenung datt Dir ...

29 Abrëll 2024