Atik

Laravel: entwodiksyon nan routage laravel

Wout nan Laravel pèmèt itilizatè yo dirije tout demann aplikasyon yo nan kontwolè ki apwopriye a. Pifò wout prensipal nan Laravel rekonèt epi aksepte yon Idantifikasyon Byen Inifòm ansanm ak yon fèmen, bay yon fason senp ak ekspresif nan wout.

Ki sa ki yon wout?

Chemen an se yon fason pou kreye yon URL demann pou aplikasyon w lan. URL sa yo pa oblije asosye ak dosye espesifik sou yon sit entènèt epi yo lizib epi yo optimize pou SEO.

Nan Laravel, chemen yo kreye nan katab dosye yo routes. Yo kreye nan dosye a web.php pou sit entènèt, ak nan api.php pou APIs.

sa yo route yo asiyen nan gwoup la middleware rezo, mete aksan sou eta sesyon ak sekirite CSRF. Wout yo nan route/api.php yo apatrid epi yo asiyen nan gwoup middleware API.
Pre-enstalasyon andefiLaravel nita vini ak de chemen, youn pou entènèt la ak lòt la pou API a. Men ki jan chemen an nan entènèt la sanble web.php:

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

Ki sa ki yon wout nan Laravel?

Tout chemen Laravel yo ye definited nan dosye yo chemen yo te jwenn nan anyè a routes. Aplikasyon jesyon wout la, definited nan dosye a App\Providers\RouteServiceProvider, pran swen otomatikman alignement fichiers sa yo. Dosye a route/web.php defifini chemen yo pou koòdone entènèt ou an.

Li posib defifini yon chemen pou aksyon kontwolè sa a jan sa a:

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

Route::resource: metòd la Route::resource pwodui tout chemen debaz ki nesesè pou yon aplikasyon epi li jere atravè klas kontwolè a.

Lè yon demann matche ak URI wout espesifye a, yo rele metòd la show definited nan kontwolè a App\Http\ControllersUserController, pase paramèt wout yo nan metòd la.

Pou resous, ou bezwen fè de bagay sou aplikasyon an Laravel. Premyèman, ou bezwen kreye yon chemen resous sou Laravel ki bay insert, mete ajou, wè ak efase chemen. Dezyèmman, kreye yon kontwolè resous ki bay yon metòd pou mete, mete ajou, gade, ak efase.

Pre-enstalasyon andefiLaravel nita vini ak de chemen: youn pou entènèt la ak lòt la pou API a. Men ki jan wout entènèt la sanble nan web.php:

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

return view(‘welcome’);

});

Laravel Middleware aji kòm yon pon ant demann lan ak reyaksyon an. Li kapab yon sòt de eleman filtre.

Laravel travay ak yon middleware ki gen travay pou konfime si aplikasyon kliyan an verifye oswa ou pa. Nan ka kliyan an konfime, Lè sa a, wout la redireksyon nan paj kay la oswa yon paj login.

Metòd yo pou route

Kòd anvan an defiyon chemen nan paj lakay la parèt. Chak fwa wout sa a resevwa yon demann get pou /, pral retounen nan view welcome

Tout chemen Laravel yo ye defini nan dosye ou yo routing, ki sitiye andedan anyè a dei routes. An konsekans, l'AppProvidersRouteServiceProvider nan aplikasyon an liy dosye sa yo. Dosye a route/web.php gen wout ki jere pou koòdone entènèt ou an.

Estrikti wout yo trè senp. Louvri dosye ki apwopriye a (`web.phpo `api.php) epi kòmanse liy kòd la ak `Route:: `, ki te swiv pa demann ou vle bay nan wout espesifik sa a epi apre sa presize fonksyon ki pral fèt apre demann lan.

Laravel ofri metòd chemen sa yo:

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

Wout yo se definited nan Laravel andedan klas la Route ak HTTP, wout la pou reponn ak fèmti a, oswa kontwolè a.

Ki jan yo kreye chemen nan Laravel

Ann wè ki jan ou ka kreye pwòp wout ou nan Laravel.

Yon chemen GET debaz

Koulye a, mwen pral kreye yon chemen debaz ki pral enprime tab la 2 fwa.

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

Nan kòd ki anwo a, mwen te kreye yon chemen demann GET pou URL la /table, ki pral enprime 2 fwa tab la sou ekran an.

Ann wè menm kòd la kounye a, paramèt nimewo pou ki nou vle tab miltiplikasyon an:

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

Nan kòd la 'number' ant parantèz yo ki reprezante paramèt la, sa vle di nimewo pou yo pral kalkile tab miltiplikasyon an. Chak fwa yo espesifye yon URL tankou sa a /table/n, Lè sa a, tablo nimewo a pral enprime n.

Genyen tou yon fason yo konbine tou de karakteristik nan yon sèl chemen. Laravel ofri karakteristik opsyon paramèt ki pèmèt ou ajoute paramèt si ou vle lè l sèvi avèk mak kesyon '?' apre paramèt opsyonèl la ak valè pre adefinwit. Ann wè egzanp lan:

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

Nan kòd ki pi wo a nou te kreye paramèt wout nou an, fè nimewo a opsyonèl, kidonk si yon itilizatè wout `/table` Lè sa a, li pral jenere tab nan 2 pa pre anviwònmandefinita epi si yon itilizatè wout nan `/table/{number}Se poutèt sa li se tab la nimewo 'number' pral pwodwi.

Ekspresyon regilye kòm kontrent pou paramèt wout yo

Nan egzanp anvan an nou te kreye yon chemen pou jenere tab miltiplikasyon an, men ki jan nou ka asire ke paramèt chemen an se aktyèlman yon nimewo, pou fè pou evite erè pandan jenerasyon tab miltiplikasyon an?

Nan Laravel, ou kapab defifini yon kontrent sou paramèt wout la lè l sèvi avèk metòd la `where` sou egzanp wout la. `where` aksepte non paramèt la ak yon ekspresyon regilye pou paramèt sa a.

Bilten inovasyon
Pa rate nouvèl ki pi enpòtan sou inovasyon. Enskri pou resevwa yo pa imel.

Koulye a, ann wè yon egzanp yon kontrent pou paramèt nou an `{numero}` pou asire ke se sèlman yon nimewo pase nan fonksyon an.

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

Nan kòd ki anwo a, nou te itilize yon ekspresyon regilye pou nimewo chemen an. Koulye a, si yon itilizatè ap eseye wout nan /tab/no , yo pral parèt yon eksepsyon NotFoundHttpException.

Laravel Routing ak Fonksyon Kontwòl

Nan Laravel, ou kapab defifini yon metòd Kontwolè pou yon wout. Yon metòd kontwolè fè tout aksyon yo definite chak fwa yon itilizatè jwenn aksè nan wout la.
Avèk kòd sa a nou ap bay metòd kontwolè a 'functionname' nan yon wout:

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

Kòd la kòmanse ak `Route::` ak Lè sa a, defimetòd demann pou wout la fini. Apre sa, defifini chemen w ak kontwolè w ​​ansanm ak metòd la lè w ajoute senbòl @ anvan non metòd la.

Bay chemen an yon non

Nan Laravel, ou kapab defivini ak yon non pou chemen ou. Non sa a souvan trè itil. Pou egzanp, si ou vle redireksyon yon itilizatè soti nan yon kote nan yon lòt, ou pa bezwen defifini URL la redireksyon konplè. Ou ka tou senpleman bay non li. Ou kapab definite non wout la lè l sèvi avèk metòd la `name` nan egzanp wout la.

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

Koulye a, mwen te kapab rejenere URL la pou chemen sa a, atravè kòd sa a:

$url = route('table');

Menm jan an tou, pou redireksyon sou URL sa a, sentaks ki kòrèk la ta dwe:

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

Route Groups

I Route Groups, literalman gwoup chemen, se yon karakteristik esansyèl nan Laravel, ki pèmèt ou gwoup chemen. Gwoup chemen yo itil lè ou vle aplike atribi nan tout chemen gwoupe yo. Si w itilize gwoup wout, ou pa oblije aplike atribi endividyèlman nan chak wout; sa a evite repetisyon. Li pèmèt ou pataje atribi tankou middleware o namespaces, san definise atribi sa yo sou chak chemen sèl. Atribi pataje sa yo ka pase nan yon fòma etalaj kòm premye paramèt nan metòd la Route::group.

Sentaks yon gwoup wout

Route::group([], callback);  

ti pijon []: se yon etalaj ki pase nan metòd gwoup la kòm premye paramèt la.

Egzanp de Route Group nan 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" ;   
   });  
});  

Nan kòd la, defiAnn kòmanse metòd la gwoup (), ki gen de paramèt yo, i.e array e closure. Anndan an closure, nou kapab defikonnen konbyen route nou vle. Nan kòd ki anwo a, nou genyen defifini twa route.

Si nou jwenn aksè nan URL la atravè navigatè localhost/myproject/first Lè sa a, premye a entèvni route ekri nan navigatè a first way route.

Avèk URL la localhost/myproject/second Lè sa a, dezyèm lan entèvni route ekri nan navigatè a second way route.

Pandan ke ak URL la localhost/myproject/third Lè sa a, twazyèm pati a entèvni route ekri nan navigatè a third way route.

Prefiks nan Route Groups

Prefiks yo nan route yo itilize lè nou vle bay yon estrikti URL komen nan plizyè route.

Nou ka presize prefiks pou tout wout definited nan gwoup la lè l sèvi avèk opsyon nan etalaj prefiks nan Route Groups.

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

Kòd la gen twa chemen ki ka jwenn aksè nan URL sa yo:

/movie/godfather  --->   Godfather casting

/movie/pulpfiction  --->   Pulp Fiction casting

/movie/forrestgump  --->   Forrest Gump casting

Middleware

Nou kapab tou bay middleware nan tout wout nan yon gwoup. Middleware a dwe defifini anvan ou kreye gwoup la. Pou wè ki jan fè li, li atik nou an Laravel middleware ki jan li fonksyone.

egzanp:

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

Prefiks non chemen yo

Metòd la name yo itilize prefiks chak non nan route ak yon fisèl espesifye. Nan metòd la name, nou bezwen presize fisèl la ak yon karaktè final nan prefiks la.

egzanp web.php

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

Ercole Palmeri

Bilten inovasyon
Pa rate nouvèl ki pi enpòtan sou inovasyon. Enskri pou resevwa yo pa imel.

Recent Articles

Nouvo entèlijans atifisyèl Google la ka modèl ADN, RNA ak "tout molekil lavi"

Google DeepMind ap prezante yon vèsyon amelyore nan modèl entèlijans atifisyèl li yo. Nouvo modèl amelyore bay non sèlman...

9 Me 2024

Eksplore Achitekti modilè Laravel la

Laravel, pi popilè pou sentaks elegant li yo ak karakteristik pwisan, tou bay yon fondasyon solid pou achitekti modilè. La…

9 Me 2024

Cisco Hypershield ak akizisyon de Splunk Nouvo epòk sekirite a kòmanse

Cisco ak Splunk ap ede kliyan akselere vwayaj yo nan Sant Operasyon Sekirite (SOC) nan tan kap vini an ak...

8 Me 2024

Pi lwen pase bò ekonomik la: pri ki pa evidan nan ransomware

Ransomware te domine nouvèl la pou de dènye ane yo. Pifò moun konnen byen ke atak...

6 Me 2024

Entèvansyon inovatè nan Reyalite Ogmante, ak yon espektatè Apple nan Poliklinik Catania

Yon operasyon oftalmoplasti lè l sèvi avèk Apple Vision Pro komèsyal viewer te fèt nan Poliklinik Catania ...

3 Me 2024

Benefis ki genyen nan paj koloran pou timoun - yon mond majik pou tout laj

Devlope ladrès motè amann atravè koloran prepare timoun yo pou ladrès ki pi konplèks tankou ekri. Pou koulè...

2 Me 2024

Lavni an se isit la: Ki jan endistri transpò a ap revolusyone ekonomi global la

Sektè naval la se yon vrè pouvwa ekonomik mondyal, ki te navige nan direksyon pou yon mache 150 milya dola ...

1 Me 2024

Piblikatè ak OpenAI siyen akò pou kontwole koule enfòmasyon ki trete pa entèlijans atifisyèl

Lendi pase a, Financial Times te anonse yon kontra ak OpenAI. FT bay lisans jounalis mondyal li...

30 Avril 2024