Articles

Laravel: sumo kune laravel nzira

Kufambisa muLaravel kunobvumira vashandisi kufambisa zvikumbiro zvese zvekushandisa kune akakodzera controller. Mazhinji nzira dzekutanga muLaravel dzinoziva uye dzinogamuchira Uniform Asset Identifier pamwe nekuvharwa, ichipa nzira iri nyore uye inoratidzira yekufambisa.

Chii chinonzi nzira (nzira)?

Iyo nzira inzira yekugadzira yekukumbira URL yechishandiso chako. Aya ma URL haafanire kubatanidzwa neakananga mafaera pawebhusaiti uye anoverengwa nevanhu uye ane hushamwari hweSEO.

MuLaravel, nzira dzinogadzirwa mukati meiyo folda routes. Izvo zvakagadzirwa mufaira web.php kumawebhusaiti, uye mukati api.php zvemaAPI.

Izvi route anogoverwa kuboka middleware network, kuratidza chimiro chechikamu uye chengetedzo CSRF. Nzira dziri mukati route/api.php ivo havana nyika uye vanopihwa kune API middleware boka.
The pre-installationdefiLaravel nita inouya nenzira mbiri, imwe yewebhu uye imwe yeAPI. Izvi ndizvo zvakaita nzira yewebhu mukati web.php:

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

Ndeipi nzira muLaravel?

Nzira dzese dzeLaravel dziri definiti mune mafaera enzira ari mukati medhairekitori routes. Iyo nzira yekushandisa application, defiyaiswa mufaira App\Providers\RouteServiceProvider, inotarisira kurongedza mafaera aya otomatiki. The file route/web.php defiinobvisa nzira dzewebhu yako interface.

Zvinogoneka definish nzira yeiyi controller chiito seinotevera:

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

Route::resource: nzira Route::resource inogadzira nzira dzese dzinodiwa pakunyorera uye inotungamirwa kuburikidza nekirasi yekutonga.

Kana chikumbiro chichienderana nenzira yakatarwa yeURI, nzira yacho inokumbirwa show defiyapera mu controller App\Http\ControllersUserController, kupfuudza nzira paramita kune nzira.

Kune zviwanikwa, iwe unofanirwa kuita zvinhu zviviri pane application Laravel. Kutanga, iwe unofanirwa kugadzira nzira yekushandisa pane Laravel iyo inopa kuisa, kugadzirisa, kuona uye kudzima nzira. Chechipiri, gadzira resource controller inopa nzira yekuisa, kugadzirisa, kuona, uye kudzima.

The pre-installationdefiLaravel nita inouya nenzira mbiri: imwe yewebhu uye imwe yeAPI. Hezvino zvakaita nzira yewebhu pawebhu.php:

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

return view(‘welcome’);

});

Laravel Middleware inoshanda sebhiriji pakati pekukumbira uye maitiro. Inogona kunge iri imwe yerudzi rwesefa chikamu.

Laravel kushanda ne middleware iyo ine basa rekusimbisa kana chikumbiro chemutengi chakasimbiswa kana kwete. Kana mutengi akasimbiswa, ipapo nzira inotungamira kune peji reimba kana peji rekupinda.

Nzira dzekugadzirisa route

Kodhi yapfuura defiinobvisa nzira inoenda kupeji yekumba. Chero nzira iyi inogamuchira chikumbiro get pa /, achadzorera view welcome

Nzira dzese dzeLaravel dziri definditi mune yenyu routing, izvo zviri mukati medhairekitori dei routes. Naizvozvo, l'AppProvidersRouteServiceProvider yezvishandiso inomisa zvinyorwa izvi. The file route/web.php ine nzira dzinochengetedzwa pawebhu interface yako.

Chimiro chegwara chiri nyore kwazvo. Vhura faira rakakodzera (`web.phpo `api.php) uye tanga mutsara wekodhi ne `Route:: `, inoteverwa nechikumbiro chaunoda kupa kune chaiyo nzira uye wobva wataura basa richaitwa zvichitevera chikumbiro.

Laravel inopa nzira dzinotevera nzira:

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

Nzira dzacho defiinoiswa muLaravel mukati meRoute kirasi ine HTTP, nzira yekupindura uye yekuvhara, kana controller.

Maitiro ekugadzira nzira muLaravel

Ngatione kuti ungagadzira sei nzira dzako muLaravel.

Iyo yakakosha GET nzira

Zvino ini ndichagadzira nzira yekutanga iyo inodhinda iyo nguva tafura ye2.

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

Mune kodhi iri pamusoro, ndakagadzira nzira yekukumbira yeGET yeiyo URL /table, iyo inodhinda tafura yenguva ye2 pachiratidziri.

Zvino ngationei kodhi imwechete, tichiisa nhamba yatinoda tafura yekuwedzera:

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

Mukodhi iyo 'number' pakati pemabhureki anomiririra parameter, kureva nhamba ichaverengerwa tafura yekuwanza. Pese panotsanangurwa URL yerudzi /table/n, ipapo tafura yenhamba ichadhindwa n.

Kune zvakare nzira yekusanganisa ese ari maviri maficha munzira imwe. Laravel inopa inosarudzika parameters inoita kuti uwedzere sarudzo uchishandisa chiratidzo chemubvunzo '?' mushure mesarudzo paramende uye pre valuedefinite. Ngationei muenzaniso:

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

Mune kodhi iri pamusoro takagadzira yedu nzira paramende, tichiita iyo nhamba sarudzo, saka kana mushandisi nzira `/table` zvino ichagadzira tafura ye2 nekukasiradefinite uye kana mushandisi aenda ku `/table/{number}Zvadaro nhamba yetafura 'number' ichagadzirwa.

Matauriro enguva dzose sezvipinganidzo zvemaparamita enzira

Mumuenzaniso wapfuura takagadzira nzira yekugadzira tafura yekuwanza, asi tingava sei nechokwadi chekuti parameter yenzira yacho inhamba, kudzivirira kukanganisa pakugadzira tafura yekuwedzera?

MuLaravel, unogona defibvisa chinomanikidza panzira paramende uchishandisa iyo ` nzirawhere` pamuenzaniso wenzira. The `where` inotora zita reparamende uye chirevo chenguva dzose cheiyo parameter.

Innovation newsletter
Usarasikirwa nenhau dzakanyanya kukosha dzekuvandudza. Nyora kuti uvagamuchire neemail.

Zvino ngationei muenzaniso wekumanikidza kune yedu ` parameter{numero}` kuita chokwadi chekuti nhamba chete inopfuudzwa kubasa.

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

Mune kodhi iri pamusoro, takashandisa chirevo chenguva dzose kune nhamba yenzira. Zvino, kana mushandisi akaedza nzira kuenda /tafura/kwete zvicharatidzwa imwe NotFoundHttpException kunze.

Laravel Routing ine control function

MuLaravel, unogona definish a Controller nzira yenzira. A controller nzira inoita zviito zvese definite pese apo mushandisi anopinda munzira.
Nekodhi inotevera isu tiri kugovera iyo controller nzira 'functionname' kune nzira:

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

Kodhi inotanga na `Route::` uye naizvozvo defiinodzima nzira yekukumbira nzira. Zvadaro, defiPedzisa nzira yako uye controller pamwe nenzira nekuwedzera iyo @ chiratidzo pamberi pezita renzira.

Ipa nzira zita

MuLaravel, unogona defitora zita renzira yako. Zita iri rinowanzobatsira zvikuru. Semuenzaniso, kana iwe uchida kutungamira mushandisi kubva kune imwe nzvimbo kuenda kune imwe, haufanirwe kudaro defibvisa iyo yakazara redirect URL. Unogona kungopa zita rake. Unogona defibvisa zita renzira uchishandisa ` nziraname` mumuenzaniso wenzira.

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

Zvino, ndaigona kuvandudza url yeiyi nzira, kuburikidza neinotevera kodhi:

$url = route('table');

Saizvozvo, pakutungamira kune iyi URL, iyo syntax chaiyo ingave:

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

Route Groups

I Route Groups, chaizvo mapoka mapoka, chinhu chakakosha muLaravel, chinokutendera kuti uunganidze nzira. Mapoka enzira anobatsira kana iwe uchida kushandisa hunhu kune ese akaiswa mapoka nzira. Kana iwe ukashandisa mapoka mapoka, haufanirwe kushandisa hunhu wega kune yega nzira; izvi zvinodzivisa kudzokorora. Zvinokutendera kuti ugovane hunhu hwakadai middleware o namespaces, pasina defipedzisa hunhu uhu panzira yega yega. Aya maitiro akagovaniswa anogona kupfuudzwa mune array fomati seyekutanga parameter kune nzira Route::group.

Syntax yeRoute Group

Route::group([], callback);  

njiva []: iri rondedzero yakapfuudzwa kunzira yeboka seyekutanga parameter.

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

Mukodhi, defingatiwane nzira boka (), iyo ine miviri miviri, i.e array e closure. Mukati me closure, tinogona defikupedza vangani route tinoda. Mune kodhi iri pamusoro, tine defiakapedza matatu route.

Kana kuburikidza nebrowser tinowana iyo URL localhost/myproject/first ipapo wekutanga anopindira route kutaipa mubrowser first way route.

Ne URL localhost/myproject/second kwozouya wechipiri route kutaipa mubrowser second way route.

Ndichiri neURL localhost/myproject/third kwozouya wechitatu route kutaipa mubrowser third way route.

Prefixes ye Route Groups

Zvivakamberi zve route iwo anoshandiswa kana isu tichida kupa URL chimiro chakajairika kune akawanda route.

Tinogona kutsanangura prefix yenzira dzese definites mukati meboka uchishandisa prefix array sarudzo mukati Route Groups.

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

Iyo kodhi ine nzira nhatu dzinogona kuwanikwa kubva kune anotevera maURL:

/movie/godfather  --->   Godfather casting

/movie/pulpfiction  --->   Pulp Fiction casting

/movie/forrestgump  --->   Forrest Gump casting

Middleware

Isu tinogona zvakare kugovera middleware kunzira dzese mukati meboka. Iyo yepakati inofanira kuva defiapedza asati agadzira boka. Kuti uone kuti ungaita sei izvi, verenga chinyorwa chedu Laravel middleware kuti inoshanda sei.

muenzaniso:

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

Path name prefixes

Maitiro name rinoshandiswa kutaridza zita rekutanga re route netambo yakataurwa. Munzira name, tinoda kutsanangura tambo ine mutsara unotevera mu prefix.

muenzaniso web.php

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

Ercole Palmeri

Innovation newsletter
Usarasikirwa nenhau dzakanyanya kukosha dzekuvandudza. Nyora kuti uvagamuchire neemail.

Zvinyorwa zvekare

UK antitrust regulator inosimudza BigTech alarm pamusoro peGenAI

Iyo UK CMA yakapa yambiro nezvemaitiro eBig Tech mumusika wehungwaru hwekugadzira. Ikoko…

18 April 2024

Casa Green: shanduko yesimba kune ramangwana rakagadzikana muItari

Chirevo che "Case Green", chakagadzirwa neEuropean Union kuti chiwedzere kushanda nesimba kwezvivakwa, chapedza hurongwa hwayo hwemutemo ne…

18 April 2024

Ecommerce muItari pa + 27% maererano neChirevo chitsva naCasaleggio Associati

Casaleggio Associati mushumo wepagore weEcommerce muItaly wakapihwa. Chirevo chine musoro unoti "AI-Commerce: miganhu yeEcommerce neArtificial Intelligence".…

17 April 2024

Yakanaka Idea: Bandalux inopa Airpure®, keteni rinochenesa mweya

Mhedzisiro yenguva dzose yekuvandudza tekinoroji uye kuzvipira kune zvakatipoteredza uye kugara zvakanaka kwevanhu. Bandalux inopa Airpure®, tende…

12 April 2024