Indlela iyindlela yokudala i-URL yesicelo yohlelo lwakho lokusebenza. Lawa ma-URL awadingi ukuthi ahlotshaniswe namafayela athile kuwebhusayithi futhi ayafundeka abantu futhi anobungani be-SEO.
Ku-Laravel, izindlela zenziwa ngaphakathi kwefolda le routes
. Zakhiwe kufayela web.php
kumawebhusayithi, nangaphakathi api.php
yama-API.
Lezi route
abelwe iqembu middleware
inethiwekhi, igqamisa isimo seseshini nokuphepha CSRF
. Imizila ku route/api.php
azinasimo futhi zabelwe iqembu le-API middleware.
Ukufakwa ngaphambilinidefiI-Laravel nita iza nezindlela ezimbili, eyodwa eyewebhu neye-API. Lena yindlela ebukeka ngayo indlela yewebhu web.php
:
Route::get('/', function () {
return view('welcome');
});
Zonke izindlela zeLaravel zilungile definiti emafayeleni endlela atholakala ngaphakathi kohlu lwemibhalo routes
. Uhlelo lokusebenza lokuphatha umzila, defikufakwe efayeleni App\Providers\RouteServiceProvider
, inakekela ukuhlanganisa lawa mafayela ngokuzenzakalelayo. Ifayela route/web.php
defiivala izindlela zesixhumi esibonakalayo sewebhu.
È kungenzeka definish indlela yalesi senzo sesilawuli kanje:
Route::get(‘user/{id}’, ‘UserController@show’);
Route::resource
: indlela Route::resource
ikhiqiza zonke izindlela eziyisisekelo ezidingekayo zohlelo lokusebenza futhi iphathwa ngesigaba sesilawuli.
Uma isicelo sifana ne-URI yomzila eshiwo, indlela iyasetshenziswa show
defikuqedwe kusilawuli App\Http\ControllersUserController
, ukudlulisa amapharamitha womzila endleleni.
Ngezinsiza, udinga ukwenza izinto ezimbili kuhlelo lokusebenza I-Laravel. Okokuqala, udinga ukudala indlela yensiza I-Laravel enikeza ukufaka, ukubuyekeza, ukubuka nokususa izindlela. Okwesibili, dala isilawuli sensiza esihlinzeka ngendlela yokufaka, ukuvuselela, ukubuka, nokususa.
Ukufakwa ngaphambilinidefiI-Laravel nita iza nezindlela ezimbili: eyodwa eyewebhu neye-API. Nakhu ukuthi umzila oya kuwebhu ubukeka kanjani ku-web.php:
Route::get(‘/’, function () {
return view(‘welcome’);
});
I-Laravel Middleware isebenza njengebhuloho phakathi kwesicelo nokusabela. Kungaba uhlobo oluthile lwengxenye yokuhlunga.
I-Laravel sebenza nge i-middleware elinomsebenzi wokuqinisekisa ukuthi isicelo seklayenti siqinisekisiwe noma cha. Uma kwenzeka iklayenti liqinisekisiwe, khona-ke umzila uqondisa kabusha ekhasini lasekhaya noma ikhasi lokungena ngemvume.
route
Ikhodi yangaphambilini defiisusa indlela eya ekhasini lasekhaya. Noma nini lapho lo mzila uthola isicelo get
ngayinye /
, izobuyisela i view
welcome
.
Zonke izindlela zeLaravel zilungile definithi kuwe routing
, ezitholakala ngaphakathi kohla lwemibhalo dei routes
. Ngenxa yalokho, l'AppProvidersRouteServiceProvider
yohlelo lokusebenza ihlanganisa la marekhodi. Ifayela route/web.php
iqukethe imizila ephethwe isixhumi esibonakalayo sewebhu.
Isakhiwo sendlela silula kakhulu. Vula ifayela elifanele (`web.php
` o `api.php
` ) bese uqala umugqa wekhodi nge `Route:: `
, okulandelwa isicelo ofuna ukusinikeza lowo mzila othile bese usho umsebenzi ozokwenziwa ngokulandela isicelo.
I-Laravel inikeza izindlela ezilandelayo:
get
post
put
delete
patch
options
Izindlela zikhona defiifakwe ku-Laravel ngaphakathi kwekilasi Lomzila nge-HTTP, umzila okumele uphendule kuwo kanye nokuvala, noma isilawuli.
Ake sibone ukuthi ungazakha kanjani izindlela zakho eLaravel.
Manje ngizodala indlela eyisisekelo ezophrinta ithebula lezikhathi lika-2.
Route::get('/table', function () {
for($i =1; $i <= 10 ; $i++){
echo "$i * 2 = ". $i*2 ."<br>";
}
});
Kule khodi engenhla, ngidale indlela yokucela i-GET ye-URL /table
, ezophrinta ithebula lezikhathi loku-2 esikrinini.
Manje ake sibone ikhodi efanayo, sibeka ipharamitha inombolo esiyifunela ithebula lokuphindaphinda:
Route::get('/table/{number}', function ($number) {
for($i =1; $i <= 10 ; $i++){
echo "$i * $number = ". $i* $number ."<br>";
}
});
Ekhodini elithi 'number
' phakathi kwezikaki imele ipharamitha, okungukuthi inombolo okuzobalwa ngayo ithebula lokuphindaphinda. Noma kunini lapho kucaciswa i-URL yohlobo /table/n
, bese kuzophrintwa ithebula lezinombolo n
.
Kukhona futhi indlela yokuhlanganisa zombili izici endleleni eyodwa. I-Laravel ikunikeza isici semingcele ongasikhetha esikuvumela ukuthi wengeze imingcele ozikhethela yona usebenzisa uphawu lombuzo '?' ngemva kwepharamitha ozikhethela yona kanye nenani langaphambilidefikusihlwa. Ake sibone isibonelo:
Route::get('/table/{number?}', function ($number = 2) {
for($i =1; $i <= 10 ; $i++){
echo "$i * $number = ". $i* $number ."<br>";
}
});
Ekhodini engenhla sidale ipharamitha yethu yomzila, okwenza inombolo ibe ngokuzikhethela, ngakho uma umsebenzisi ehola `/table
` khona-ke izokhiqiza ithebula lika-2 ngokuzenzakalelayodefinite futhi uma umsebenzisi ehambela `/table/{number}
Bese kuba nethebula lezinombolo 'number'
izokhiqizwa.
Esibonelweni sangaphambilini sidale indlela yokukhiqiza ithebula lokuphindaphinda, kodwa singaqinisekisa kanjani ukuthi ipharamitha yendlela empeleni iyinombolo, ukugwema amaphutha lapho kukhiqizwa ithebula lokuphindaphinda?
Ngo Laravel, ungakwazi defisusa umkhawulo kupharamitha yomzila usebenzisa indlela `where
` esibonelweni somzila. I``where
` ithatha igama lepharamitha kanye nenkulumo evamile yaleyo pharamitha.
Manje ake sibone isibonelo sesivimbelo ` sepharamitha yethu{numero}
` ukwenza isiqiniseko sokuthi inombolo kuphela edluliswayo kumsebenzi.
Route:: get ( '/table/{numero?}' , funzione ( $numero = 2 ) {
for( $i = 1 ; $i < = 10 ; $i + + ) {
echo "$i * $numero = " . $i * $numero . "<br>" ;
}
} )->where( 'numero' , '[0-9]+' ) ;
Kule khodi engenhla, sisebenzise isisho esivamile senombolo yendlela. Manje, uma umsebenzisi ezama umzila oya /ithebula/no izovezwa okuhlukile kwe-NotFoundHttpException.
Ngo Laravel, ungakwazi defisebenzisa indlela yokulawula yendlela. Indlela yesilawuli yenza zonke izenzo definite njalo lapho umsebenzisi efinyelela umzila.
Ngekhodi elandelayo sabela indlela yesilawuli 'functionname'
emzileni:
Route:: get ( '/home' , 'YourController@functionname' ) ;
Ikhodi iqala ngokuthi `Route::`
ngakho-ke defiivala indlela yokucela indlela. Ngemva kwalokho, defiQedela indlela yakho nesilawuli kanye nendlela ngokungeza uphawu luka-@ ngaphambi kwegama lendlela.
Ngo Laravel, ungakwazi defingicela igama lendlela yakho. Leli gama ngokuvamile liwusizo kakhulu. Isibonelo, uma ufuna ukuqondisa kabusha umsebenzisi kusuka endaweni eyodwa kuya kwenye, akudingekile defivala i-URL yokuqondisa kabusha egcwele. Ungamane unikeze igama lakhe. Ungakwazi defisusa igama lomzila usebenzisa indlela `name
` esimweni somzila.
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’);
Manje, ngingakwazi ukukhiqiza kabusha i-url yale ndlela, ngokusebenzisa ikhodi elandelayo:
$url = route('table');
Ngokufanayo, ekuqondiseni kabusha kule URL, i-syntax elungile izoba:
return redirect()->route('table');
Route Groups
I Route Groups
, ngokwezwi nezwi amaqembu endlela, iyisici esibalulekile ku-Laravel, esikuvumela ukuthi uhlanganise izindlela. Amaqembu ezindlela awusizo uma ufuna ukusebenzisa izibaluli kuzo zonke izindlela eziqoqwe. Uma usebenzisa amaqembu endlela, asikho isidingo sokuthi usebenzise izibaluli ngazinye endleleni ngayinye; lokhu kugwema ukuphindaphinda. Ikuvumela ukuthi wabelane ngezimfanelo ezifana middleware
o namespaces
, ngaphandle defiqedela lezi zimfanelo endleleni ngayinye ngayinye. Lezi zibaluli ezabiwe zingadluliswa ngefomethi yamalungu afanayo njengepharamitha yokuqala endleleni Route::group
.
I-syntax Yeqembu Lomzila
Route::group([], callback);
ijuba []: iwuhlelo oludluliselwe endleleni yeqembu njengepharamitha yokuqala.
Isibonelo se Route Group
e 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" ;
});
});
Ekhodini, defiasithole indlela iqembu(), equkethe imingcele emibili, i.e array
e closure
. Ngaphakathi kwe closure
, singakwazi defiqeda ukuthi bangaki route
sifuna. Kule khodi engenhla, sinayo defiwaqeda kathathu route
.
Uma ngesiphequluli sifinyelela i-URL localhost/myproject/first
bese kungenela owokuqala route
ukuthayipha esipheqululini first way route
.
Nge-URL localhost/myproject/second
bese kulandela owesibili route
ukuthayipha esipheqululini second way route
.
Ngenkathi une-URL localhost/myproject/third
bese kulandela owesithathu route
ukuthayipha esipheqululini third way route
.
Route Groups
Iziqalo ze route
asetshenziswa uma sifuna ukuhlinzeka ngesakhiwo se-URL esivamile kokuningi route
.
Singacacisa isiqalo sazo zonke izindlela defiama-nites phakathi kweqembu usebenzisa inketho yohlu lwesiqalo ku Route Groups
.
Isibonelo se 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";
});
});
Ikhodi iqukethe izindlela ezintathu ezingafinyelelwa kuma-URL alandelayo:
/movie/godfather ---> Godfather casting
/movie/pulpfiction ---> Pulp Fiction casting
/movie/forrestgump ---> Forrest Gump casting
Futhi singanikeza i-middleware kuyo yonke imizila ngaphakathi kweqembu. I-middleware kufanele ibe defiqedile ngaphambi kokudala iqembu. Ukuze ubone ukuthi ungakwenza kanjani lokhu, funda isihloko sethu I-Laravel middleware ukuthi isebenza kanjani.
isibonelo:
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";
});
});
Indlela name
isetshenziselwa ukufaka isiqalo igama ngalinye lika route
ngochungechunge olucacisiwe. Endleleni name
, sidinga ukucacisa iyunithi yezinhlamvu enohlamvu olulandelanayo kusiqalo.
Ngokwesibonelo web.php
Route::name('movie.')->group(function()
{
Route::get('users', function()
{
return "movie.films";
})->name('films');
});
Ercole Palmeri
I-Coveware ye-Veeam izoqhubeka nokuhlinzeka ngezinsizakalo zokuphendula izigameko zokuntshontshwa kwe-inthanethi. I-Coveware izohlinzeka ngama-forensics kanye nekhono lokulungisa…
Ukulungiswa okuqagelayo kuguqula umkhakha kawoyela negesi, ngendlela emisha nesebenzayo yokuphatha izitshalo.…
I-CMA yase-UK ikhiphe isexwayiso mayelana nokuziphatha kwe-Big Tech emakethe yezobunhloli bokwenziwa. Lapho…
Isinqumo esithi "Case Green", esakhiwe yi-European Union ukuze kuthuthukiswe ukusebenza kahle kwamandla ezakhiwo, siphothule inqubo yaso yomthetho ngokuthi...