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

Boitshunyako bo bocha ho Augmented Reality, ka sebali sa Apple Catania Polyclinic

Ophthalmoplasty ophthalmoplasty opereishene e sebelisang Apple Vision Pro e shebelletse khoebo e entsoe Catania Polyclinic…

3 May 2024

Melemo ea Maqephe a Mebala bakeng sa Bana - lefats'e la boselamose bakeng sa lilemo tsohle

Ho hlaolela tsebo e ntle ea ho tsamaisa likoloi ka ho kenya mebala ho lokisetsa bana bakeng sa litsebo tse rarahaneng joalo ka ho ngola. Ho mebala...

2 May 2024

Bokamoso bo Mona: Kamoo Indasteri ea Thomello e Felisang Moruo oa Lefatše

Lekala la likepe ke matla a 'nete a moruo a lefats'e, a tsamaileng ho ea 'marakeng oa limilione tse likete tse 150...

1 May 2024

Bahatisi le OpenAI ba saena litumellano tsa ho laola phallo ea tlhahisoleseling e sebetsitsoeng ke Artificial Intelligence

Mantaha o fetileng, Financial Times e phatlalalitse selekane le OpenAI. FT e fana ka tumello ea bongoli ba eona ba maemo a lefats'e…

30 April 2024