Articles

Laravel: kenyelletso ea tsela ea laravel

Routing in Laravel e lumella basebelisi ho fetisetsa likopo tsohle tsa kopo ho molaoli ea loketseng. Bongata ba litsela tsa mantlha tsa Laravel li lemoha le ho amohela Sesupo sa Matlotlo a Uniform hammoho le ho koala, se fana ka tsela e bonolo le e hlakileng ea ho tsamaisa litsela.

Tsela (tsela) ke eng?

Tsela ke mokhoa oa ho theha URL ea kopo bakeng sa kopo ea hau. Li-URL tsena ha li hloke ho amahanngoa le lifaele tse itseng webosaeteng 'me li ka baloa ke batho ebile li na le botsoalle ho SEO.

Ho Laravel, litsela li entsoe ka har'a foldara ea le routes. Li entsoe ka har'a faele web.php bakeng sa liwebsaete, le ka hare api.php bakeng sa li-API.

Tsena route li abeloa sehlopha middleware marang-rang, ho totobatsa boemo ba seboka le ts'ireletso CSRF. Litsela tse kenang route/api.php ha ba na naha mme ba abeloa sehlopha sa API middleware.
Ho kenya peledefiLaravel nita e tla le litsela tse peli, e 'ngoe bakeng sa web le e' ngoe bakeng sa API. Sena ke kamoo tsela ea webo e shebahalang ka teng web.php:

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

Tsela ea Laravel ke efe?

Litsela tsohle tsa Laravel li definiti lifaeleng tsa tsela tse fumanehang ka har'a bukana routes. Sesebelisoa sa tsamaiso ea litsela, defie felile ka har'a faele App\Providers\RouteServiceProvider, e itlhokomela ka ho iketsetsa mela ea lifaele tsena. Faele route/web.php defie koala litsela tsa sehokelo sa hau sa webo.

Ho ka etsahala defietsa tsela ea ketso ena ea molaoli ka tsela e latelang:

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

Route::resource: mokhoa Route::resource e hlahisa litsela tsohle tsa mantlha tse hlokahalang bakeng sa kopo mme e laoloa ka sehlopha sa balaoli.

Ha kopo e tšoana le URI ea tsela e boletsoeng, mokhoa ona oa sebelisoa show defie felile ka molaoli App\Http\ControllersUserController, ho fetisa mekhoa ea litsela ho mokhoa.

Bakeng sa lisebelisoa, o hloka ho etsa lintho tse peli ka kopo Laravella. Pele, o hloka ho theha tsela ea lisebelisoa ho Laravella e fanang ka ho kenya, ho nchafatsa, ho sheba le ho phumula litsela. Taba ea bobeli, theha molaoli oa lisebelisoa o fanang ka mokhoa oa ho kenya, ho ntlafatsa, ho shebella le ho hlakola.

Ho kenya peledefiLaravel nita e tla le litsela tse peli: e 'ngoe bakeng sa web le e' ngoe bakeng sa API. Mona ke hore na tsela ea ho ea webong e shebahala joang ho web.php:

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

return view(‘welcome’);

});

Laravel Middleware e sebetsa joalo ka borokho lipakeng tsa kopo le karabelo. E ka ba karolo ea mofuta o itseng oa filthara.

Laravella sebetsa le a middleware e nang le mosebetsi oa ho netefatsa hore na kopo ea moreki e netefalitsoe kapa che. Haeba moreki a tiisitsoe, joale mokhoa o lebisang leqepheng la lehae kapa leqephe la ho kena.

Mekhoa ea ho route

Khoutu e fetileng defie koala tsela e eang leqepheng la lehae. Nako le nako ha tsela ena e fumana kopo get ka /, e tla khutlisa the view welcome

Litsela tsohle tsa Laravel li definiti ho hao routing, tse fumanehang ka har'a directory dei routes. Ka lebaka leo, l'AppProvidersRouteServiceProvider ea kopo mela direkoto tsena. Faele route/web.php e na le litsela tse laoloang bakeng sa sehokelo sa hau sa tepo.

Sebopeho sa tsela se bonolo haholo. Bula faele e nepahetseng (`web.phpo `api.php) ebe o qala mola oa khoutu ka `Route:: `, e lateloe ke kopo eo u batlang ho e abela tsela eo e khethehileng ebe u bolela mosebetsi o tla etsoa ka mor'a kopo.

Laravel e fana ka mekhoa e latelang ea litsela:

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

Litsela li defie kentsoe Laravel ka har'a sehlopha sa Route ka HTTP, tsela eo u lokelang ho e araba le ho koala, kapa molaoli.

Mokhoa oa ho theha litsela ho Laravel

Ha re boneng hore na u ka iketsetsa litsela tsa hau joang Laravel.

Mokhoa oa mantlha oa GET

Joale ke tlo theha tsela ea mantlha e tla hatisa tafole ea linako tsa 2.

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

Khoutung e kaholimo, ke thehile tsela ea kopo ea GET bakeng sa URL /table, e tla hatisa tafole ea linako tsa 2 skrineng.

Joale ha re boneng khoutu e ts'oanang, re beha palo ea palo eo re e batlang tafoleng ea ho atisa:

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

Ka khoutu 'number' lipakeng tsa li-braces li emela paramethara, ke hore, palo eo tafole ea katiso e tla baloa bakeng sa eona. Nako le nako ha URL ea mofuta o hlalosoa /table/n, ebe tafole ea linomoro e tla hatisoa n.

Hape ho na le mokhoa oa ho kopanya likarolo ka bobeli ka tsela e le 'ngoe. Laravel e fana ka likarolo tseo u ka li khethang tse u lumellang hore u kenye liparamente tseo u ka li khethang u sebelisa letšoao la potso '?' ka mor'a parameter ea boikhethelo le boleng ba peledefinnyane. Ha re boneng mohlala:

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

Khoutung e kaholimo re thehile parameter ea rona ea tsela, re etsa hore nomoro e be khetho, kahoo haeba mosebelisi a tsamaea `/table` joale e tla hlahisa tafole ea 2 ka ho sa felengdefinite mme haeba mosebelisi a ea ho `/table/{number}Ebe tafole ea linomoro 'number' e tla hlahisoa.

Lipolelo tse tloaelehileng joalo ka lithibelo bakeng sa liparamente tsa tsela

Mohlala o fetileng re thehile tsela ea ho hlahisa tafole ea ho atisa, empa re ka etsa bonnete ba hore parameter ea tsela e hlile e le palo, ho qoba liphoso ha ho etsoa tafole ea ho atisa?

Ho Laravel, u ka khona defitlosa tšitiso holim'a parameter ea tsela u sebelisa ` mokhoawhere` ka mohlala oa tsela. The `where` e nka lebitso la parametha le polelo e tloaelehileng bakeng sa paramethara eo.

Leselinyana la litaba tse ncha
Se ke oa fetoa ke litaba tsa bohlokoa ka ho fetisisa tsa boqapi. Ingolise ho li amohela ka lengolo-tsoibila.

Joale ha re boneng mohlala oa tšitiso bakeng sa ` parameter ea rona{numero}` ho etsa bonnete ba hore ke palo feela e fetisetsoang tšebetsong.

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

Khoutung e kaholimo, re sebelisitse polelo e tloaelehileng bakeng sa nomoro ea tsela. Joale, haeba mosebelisi a leka ho ea ho /tafole/no e tla bontshwa mokhelo oa NotFoundHttpException.

Laravel Routing e nang le ts'ebetso ea taolo

Ho Laravel, u ka khona definish a Controller mokhoa bakeng sa tsela. Mokhoa oa ho laola o etsa liketso tsohle definite nako le nako ha mosebelisi a kena tseleng.
Ka khoutu e latelang re abela mokhoa oa ho laola 'functionname' ho ea tseleng:

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

Khoutu e qala ka `Route::` mme ka hona defie hlakola mokhoa oa ho kopa tsela. Ka mor'a moo, defiQetella tsela ea hau le molaoli hammoho le mokhoa ka ho eketsa letšoao la @ pele ho lebitso la mokhoa.

Efa tsela lebitso

Ho Laravel, u ka khona defibitsa lebitso la tsela ea hau. Hangata lebitso lena le molemo haholo. Mohlala, haeba u batla ho tsamaisa mosebelisi ho tloha sebakeng se seng ho ea ho se seng, ha ua tlameha ho etsa joalo defihlakola URL e tsamaisang sebaka ka botlalo. O ka fana ka lebitso la hae feela. U ka khona defihlakola lebitso la tsela u sebelisa ` mokhoaname` ka mohlala oa tsela.

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

Joale, nka nchafatsa url ea tsela ena, ka khoutu e latelang:

$url = route('table');

Ka mokhoa o ts'oanang, bakeng sa ho lebisa URL ena, syntax e nepahetseng e tla ba:

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

Route Groups

I Route Groups, lihlopha tsa litsela, ke karolo ea bohlokoa ho Laravel, e u lumellang ho hlophisa litsela. Lihlopha tsa litsela li na le thuso ha u batla ho sebelisa litšoaneleho litseleng tsohle tse hlophisitsoeng. Haeba u sebelisa lihlopha tsa litsela, ha ua tlameha ho sebelisa litšoaneleho ka bonngoe tseleng e 'ngoe le e' ngoe; sena se qoba ho pheta-pheta. E u lumella ho arolelana litšobotsi tse kang middleware o namespaces, ntle le defiqeta litšobotsi tsena ka tsela e 'ngoe le e 'ngoe. Litšobotsi tsena tse arolelanoang li ka fetisoa ka mokhoa o hlophisitsoeng e le parameter ea pele ea mokhoa Route::group.

Syntax ea Sehlopha sa Tsela

Route::group([], callback);  

leeba []: ke lethathamo le fetiselitsoeng ho mokhoa oa sehlopha joalo ka paramethara ea pele.

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

Ka khoutu, defiha re fumane mokhoa sehlopha(), e nang le mekhahlelo e 'meli, i.e array e closure. Ka hare ho closure, re ka khona defiqeta tse kae route re batla. Ka khoutu e ka holimo, re na le defie qetile tse tharo route.

Haeba ka sebatli re fihlella URL localhost/myproject/first ebe oa pele oa kenella route ho ngola sebatli first way route.

Ka URL localhost/myproject/second ebe ho tla wa bobedi route ho ngola sebatli second way route.

Ha u ntse u e-na le URL localhost/myproject/third ebe ho tla wa boraro route ho ngola sebatli third way route.

Li-prefixes tsa Route Groups

Lihlongoana tsa route li sebelisoa ha re batla ho fana ka sebopeho sa URL se tloaelehileng ho tse ngata route.

Re ka hlakisa prefix bakeng sa litsela tsohle defiNites ka har'a sehlopha ho sebelisa khetho ea sehlopha sa pele ho Route Groups.

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

Khoutu e na le litsela tse tharo tse ka fihlellehang ho tsoa ho li-URL tse latelang:

/movie/godfather  --->   Godfather casting

/movie/pulpfiction  --->   Pulp Fiction casting

/movie/forrestgump  --->   Forrest Gump casting

Middleware

Re ka boela ra abela middleware litsela tsohle ka har'a sehlopha. Lisebelisoa tsa bohareng li tlameha ho ba joalo defiqeta pele ho theha sehlopha. Ho bona mokhoa oa ho etsa sena, bala sehlooho sa rona Laravel middleware kamoo e sebetsang kateng.

mohlala:

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

Li-prefixes tsa mabitso a tsela

Mokhoa name e sebedisoang ho hlongoa lebitso ka leng la route ka khoele e boletsoeng. Ka mokhoa name, re hloka ho hlakisa khoele ka tlhaku e latelang sehlohlolong.

mohlala web.php

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

Ercole Palmeri

Leselinyana la litaba tse ncha
Se ke oa fetoa ke litaba tsa bohlokoa ka ho fetisisa tsa boqapi. Ingolise ho li amohela ka lengolo-tsoibila.

Lihlooho tsa morao tjena

Veeam e fana ka ts'ehetso e felletseng ea thekollo, ho tloha ts'ireletso ho isa ho karabelo le ho hlaphoheloa

Coveware ke Veeam e tla tsoelapele ho fana ka litšebeletso tsa karabelo ea liketsahalo tsa bosholu ba cyber. Coveware e tla fana ka bokhoni ba forensics le tokiso…

23 April 2024

Phetohelo ea Botala le Dijithale: Kamoo Tlhokomelo e Lebeletsoeng e Fetola Indasteri ea Oli le Khase

Tlhokomelo ea esale pele e tlisa phetoho lefapheng la oli le khase, ka mokhoa o mocha le o sebetsang oa taolo ea limela.…

22 April 2024

Molaoli oa antitrust oa UK o phahamisa alamo ea BigTech holim'a GenAI

UK CMA e fane ka temoso mabapi le boitšoaro ba Big Tech 'marakeng oa bohlale ba maiketsetso. Mono…

18 April 2024

Casa Green: Phetoho ea matla bakeng sa bokamoso bo tsitsitseng Italy

Taelo ea "Case Green", e entsoeng ke European Union ho ntlafatsa ts'ebetso ea matla ea meaho, e phethetse ts'ebetso ea eona ea molao ka…

18 April 2024