makala

Laravel: utangulizi wa njia ya laravel

Uelekezaji katika Laravel huruhusu watumiaji kuelekeza maombi yote ya programu kwa kidhibiti kinachofaa. Njia nyingi za msingi katika Laravel zinatambua na kukubali Kitambulishi cha Kipengee Kilichofanana pamoja na kufungwa, hivyo kutoa njia rahisi na ya kueleweka ya kuelekeza.

Njia (njia) ni nini?

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

Ni njia gani huko Laravel?

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.

Mbinu kwa ajili ya 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.phpo `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.

Jinsi ya kuunda njia katika Laravel

Wacha tuone jinsi unavyoweza kuunda njia zako mwenyewe huko Laravel.

Njia ya msingi ya GET

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.

Semi za kawaida kama vizuizi vya vigezo vya njia

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.

Jarida la uvumbuzi
Usikose habari muhimu zaidi kuhusu uvumbuzi. Jisajili ili kuzipokea kwa barua pepe.

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.

Njia ya Laravel na kazi ya kudhibiti

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.

Ipe njia jina

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.

Viambishi awali vya 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

Middleware

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

Viambishi awali vya jina la njia

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

Jarida la uvumbuzi
Usikose habari muhimu zaidi kuhusu uvumbuzi. Jisajili ili kuzipokea kwa barua pepe.

Makala ya hivi karibuni

Il Futuro è Qui: Come il Settore Navale Sta Rivoluzionando l’Economia Globale

Il settore navale è una vera e propria potenza economica mondiale, che ha navigato verso un mercato da 150 miliardi…

1 Mei 2024

Wachapishaji na OpenAI hutia saini mikataba ya kudhibiti mtiririko wa taarifa zinazochakatwa na Intelligence Artificial Intelligence

Jumatatu iliyopita, Financial Times ilitangaza makubaliano na OpenAI. FT inatoa leseni kwa uandishi wake wa habari wa kiwango cha kimataifa…

Aprili 30 2024

Malipo ya Mtandaoni: Hivi Ndivyo Huduma za Utiririshaji Hukufanya Ulipe Milele

Mamilioni ya watu hulipia huduma za utiririshaji, kulipa ada za usajili za kila mwezi. Ni maoni ya kawaida kwamba wewe…

Aprili 29 2024

Veeam inaangazia usaidizi wa kina zaidi wa ransomware, kutoka kwa ulinzi hadi majibu na uokoaji

Coveware by Veeam itaendelea kutoa huduma za kukabiliana na matukio ya ulaghai mtandaoni. Coveware itatoa uwezo wa uchunguzi na urekebishaji…

Aprili 23 2024