Njia ni njia ya kuunda URL ya ombi la programu yako. URL hizi hazihitaji kuhusishwa na faili mahususi kwenye tovuti na zinaweza kusomeka na binadamu na ni rafiki kwa SEO.
Katika Laravel, njia zinaundwa ndani ya folda ya le routes
. Zinaundwa kwenye faili web.php
kwa tovuti, na ndani api.php
kwa API.
Hizi route
zimetolewa kwa kikundi middleware
mtandao, ikiangazia hali ya kipindi na usalama CSRF
. Njia za ndani route/api.php
hawana uraia na wamepewa kikundi cha API middleware.
Ufungaji wa awalidefiLaravel nita inakuja na njia mbili, moja ya wavuti na moja ya API. Hivi ndivyo njia ya wavuti inavyoonekana web.php
:
Route::get('/', function () {
return view('welcome');
});
Njia zote za Laravel ni definiti kwenye faili za njia ziko ndani ya saraka routes
. Maombi ya usimamizi wa njia, defiimefungwa kwenye faili App\Providers\RouteServiceProvider
, inashughulikia kupanga faili hizi kiotomatiki. Faili route/web.php
defihufuta njia za kiolesura chako cha wavuti.
Inawezekana definish njia ya hatua hii ya mtawala kama ifuatavyo:
Route::get(‘user/{id}’, ‘UserController@show’);
Route::resource
: mbinu Route::resource
hutoa njia zote za msingi zinazohitajika kwa programu na inasimamiwa kupitia darasa la mtawala.
Wakati ombi linalingana na URI ya njia iliyobainishwa, mbinu hiyo inatumika show
defiimekamilika katika kidhibiti App\Http\ControllersUserController
, kupitisha vigezo vya njia kwa njia.
Kwa rasilimali, unahitaji kufanya mambo mawili kwenye programu Laravel. Kwanza, unahitaji kuunda njia ya rasilimali Laravel ambayo hutoa kuingiza, kusasisha, kutazama na kufuta njia. Pili, unda kidhibiti cha rasilimali ambacho hutoa njia ya kuingiza, kusasisha, kutazama na kufuta.
Ufungaji wa awalidefiLaravel nita inakuja na njia mbili: moja ya wavuti na moja ya API. Hivi ndivyo njia ya kuelekea wavuti inavyoonekana katika web.php:
Route::get(‘/’, function () {
return view(‘welcome’);
});
Laravel Middleware hufanya kama daraja kati ya ombi na majibu. Inaweza kuwa aina fulani ya sehemu ya chujio.
Laravel fanya kazi na a katikati ambayo ina jukumu la kuthibitisha ikiwa ombi la mteja limethibitishwa au la. Iwapo mteja atathibitishwa, basi kuelekeza kwingine kwa ukurasa wa nyumbani au ukurasa wa kuingia.
route
Kanuni ya awali definishes njia ya ukurasa wa nyumbani. Wakati wowote njia hii inapokea ombi get
kwa ajili ya /
, itarudi view
welcome
.
Njia zote za Laravel ni definiti katika yako routing
, ambazo ziko ndani ya saraka dei routes
. Kwa hiyo, l'AppProvidersRouteServiceProvider
ya maombi inaweka rekodi hizi. Faili route/web.php
ina njia zinazodhibitiwa kwa kiolesura chako cha wavuti.
Muundo wa njia ni rahisi sana. Fungua faili inayofaa (`web.php
` o `api.php
` ) na anza safu ya nambari na `Route:: `
, ikifuatiwa na ombi unalotaka kukabidhi njia hiyo mahususi na kisha ubainishe kazi ambayo itafanywa kufuatia ombi.
Laravel inatoa njia zifuatazo za njia:
get
post
put
delete
patch
options
Njia ni definited katika Laravel ndani ya darasa la Njia na HTTP, njia ya kujibu na kufunga, au kidhibiti.
Wacha tuone jinsi unavyoweza kuunda njia zako mwenyewe huko Laravel.
Sasa nitaunda njia ya msingi ambayo itachapisha jedwali la nyakati za 2.
Route::get('/table', function () {
for($i =1; $i <= 10 ; $i++){
echo "$i * 2 = ". $i*2 ."<br>";
}
});
Katika nambari iliyo hapo juu, niliunda njia ya ombi la GET ya URL /table
, ambayo itachapisha jedwali la nyakati za 2 kwenye skrini.
Sasa hebu tuone msimbo huo huo, ukiweka parameta ya nambari ambayo tunataka jedwali la kuzidisha:
Route::get('/table/{number}', function ($number) {
for($i =1; $i <= 10 ; $i++){
echo "$i * $number = ". $i* $number ."<br>";
}
});
Katika kanuni 'number
' kati ya viunga inawakilisha kigezo, yaani, nambari ambayo jedwali la kuzidisha litahesabiwa. Wakati wowote URL ya aina imebainishwa /table/n
, kisha jedwali la nambari litachapishwa n
.
Pia kuna njia ya kuchanganya vipengele vyote viwili kwa njia moja. Laravel inatoa kipengele cha hiari cha vigezo ambacho hukuruhusu kuongeza vigezo vya hiari kwa kutumia alama ya kuuliza '?' baada ya kigezo cha hiari na thamani ya awalidefijioni. Hebu tuone mfano:
Route::get('/table/{number?}', function ($number = 2) {
for($i =1; $i <= 10 ; $i++){
echo "$i * $number = ". $i* $number ."<br>";
}
});
Katika nambari iliyo hapo juu tuliunda kigezo chetu cha njia, tukifanya nambari kuwa ya hiari, kwa hivyo ikiwa mtumiaji anapitia `/table
` basi itatoa jedwali la 2 kwa chaguo-msingidefinite na ikiwa mtumiaji atapitia `/table/{number}
Kisha meza ya nambari 'number'
itatolewa.
Katika mfano uliopita tuliunda njia ya kutengeneza jedwali la kuzidisha, lakini tunawezaje kuhakikisha kuwa parameta ya njia ni nambari, ili kuzuia makosa wakati wa kutengeneza jedwali la kuzidisha?
Katika Laravel, unaweza definish kizuizi kwenye paramu ya njia kwa kutumia `njiawhere
` kwenye mfano wa njia. The `where
` inachukua jina la kigezo na usemi wa kawaida wa parameta hiyo.
Sasa hebu tuone mfano wa kizuizi kwa ` parameta{numero}
` ili kuhakikisha kuwa ni nambari pekee inayopitishwa kwenye chaguo la kukokotoa.
Route:: get ( '/table/{numero?}' , funzione ( $numero = 2 ) {
for( $i = 1 ; $i < = 10 ; $i + + ) {
echo "$i * $numero = " . $i * $numero . "<br>" ;
}
} )->where( 'numero' , '[0-9]+' ) ;
Katika nambari iliyo hapo juu, tulitumia usemi wa kawaida kwa nambari ya njia. Sasa, ikiwa mtumiaji anajaribu kuelekeza /meza/hapana itaonyeshwa ubaguzi wa NotFoundHttpException.
Katika Laravel, unaweza definish njia ya Kidhibiti kwa njia. Mbinu ya mtawala hufanya vitendo vyote definite kila wakati mtumiaji anafikia njia.
Kwa nambari ifuatayo tunapeana njia ya mtawala 'functionname'
kwa njia:
Route:: get ( '/home' , 'YourController@functionname' ) ;
Kanuni huanza na `Route::`
na kwa hiyo defiinafuta njia ya ombi la njia. Baadaye, defiMaliza njia yako na kidhibiti pamoja na njia kwa kuongeza alama ya @ kabla ya jina la njia.
Katika Laravel, unaweza definipe jina la njia yako. Jina hili mara nyingi ni muhimu sana. Kwa mfano, ikiwa unataka kuelekeza mtumiaji upya kutoka eneo moja hadi jingine, si lazima defifuta URL kamili ya kuelekeza kwingine. Unaweza tu kutoa jina lake. Unaweza definish jina la njia kwa kutumia `njianame
`katika mfano wa njia.
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’);
Sasa, ningeweza kutengeneza upya url ya njia hii, kupitia nambari ifuatayo:
$url = route('table');
Vile vile, kwa kuelekeza upya kwa URL hii, sintaksia sahihi itakuwa:
return redirect()->route('table');
Route Groups
I Route Groups
, vikundi vya njia halisi, ni sifa muhimu katika Laravel, ambayo hukuruhusu kupanga njia za kikundi. Vikundi vya njia ni muhimu unapotaka kutumia sifa kwa njia zote zilizojumuishwa. Ikiwa unatumia vikundi vya njia, sio lazima utumie sifa kibinafsi kwa kila njia; hii inaepuka kurudia. Inakuruhusu kushiriki sifa kama middleware
o namespaces
, bila defikumaliza sifa hizi kwa kila njia ya mtu binafsi. Sifa hizi zilizoshirikiwa zinaweza kupitishwa katika umbizo la safu kama kigezo cha kwanza kwa mbinu Route::group
.
Sintaksia ya Kikundi cha Njia
Route::group([], callback);
njiwa []: ni safu iliyopitishwa kwa njia ya kikundi kama kigezo cha kwanza.
Mfano wa Route Group
katika 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" ;
});
});
Katika kanuni, defitutafute mbinu kikundi (), ambayo ina vigezo viwili, i.e array
e closure
. Ndani ya closure
, Tunaweza defikumaliza ngapi route
tunataka. Katika kanuni hapo juu, tuna defikumaliza tatu route
.
Ikiwa kupitia kivinjari tutafikia URL localhost/myproject/first
kisha wa kwanza anaingilia kati route
kuandika kwenye kivinjari first way route
.
Na URL localhost/myproject/second
kisha inakuja ya pili route
kuandika kwenye kivinjari second way route
.
Ukiwa na URL localhost/myproject/third
kisha anakuja wa tatu route
kuandika kwenye kivinjari third way route
.
Route Groups
Viambishi awali vya route
hutumika tunapotaka kutoa muundo wa URL unaofanana na nyingi route
.
Tunaweza kubainisha kiambishi awali cha njia zote definites ndani ya kikundi kwa kutumia chaguo la safu ya kiambishi awali ndani Route Groups
.
Mfano wa 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";
});
});
Msimbo una njia tatu zinazoweza kufikiwa kutoka kwa URL zifuatazo:
/movie/godfather ---> Godfather casting
/movie/pulpfiction ---> Pulp Fiction casting
/movie/forrestgump ---> Forrest Gump casting
Tunaweza pia kugawa vifaa vya kati kwa njia zote ndani ya kikundi. Chombo cha kati lazima kiwe defikumaliza kabla ya kuunda kikundi. Ili kuona jinsi ya kufanya hivyo, soma makala yetu Laravel middleware jinsi inavyofanya kazi.
mfano:
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";
});
});
Njia name
hutumika kuweka kiambishi awali cha kila jina la route
na kamba maalum. Katika mbinu name
, tunahitaji kubainisha mfuatano wenye herufi inayofuata katika kiambishi awali.
mfano web.php
Route::name('movie.')->group(function()
{
Route::get('users', function()
{
return "movie.films";
})->name('films');
});
Ercole Palmeri
Operesheni ya ophthalmoplasty kwa kutumia kitazamaji cha kibiashara cha Apple Vision Pro ilifanywa katika Catania Polyclinic…
Kukuza ujuzi mzuri wa magari kupitia kupaka rangi huwatayarisha watoto kwa ujuzi changamano zaidi kama vile kuandika. Kupaka rangi...
Sekta ya majini ni nguvu ya kweli ya kiuchumi duniani, ambayo imepitia kwenye soko la bilioni 150 ...
Jumatatu iliyopita, Financial Times ilitangaza makubaliano na OpenAI. FT inatoa leseni kwa uandishi wake wa habari wa kiwango cha kimataifa…