raksti

Laravel: ievads par laravel maršrutēšanu

Maršrutēšana programmā Laravel ļauj lietotājiem novirzīt visus lietojumprogrammu pieprasījumus uz atbilstošo kontrolieri. Lielākā daļa primāro maršrutu Laravel atpazīst un pieņem vienotu īpašuma identifikatoru kopā ar slēgšanu, nodrošinot vienkāršu un izteiksmīgu maršrutēšanas veidu.

Kas ir maršruts (maršruts)?

Ceļš ir veids, kā lietojumprogrammai izveidot pieprasījuma URL. Šie URL nav jāsaista ar konkrētiem failiem vietnē, un tie ir cilvēkiem lasāmi un piemēroti SEO.

Programmā Laravel ceļi tiek izveidoti mapē le routes. Tie ir izveidoti failā web.php vietnēm un iekšienē api.php API.

Šis route tiek piešķirti grupai middleware tīkls, izceļot sesijas statusu un drošību CSRF. Maršruti iekšā route/api.php tie ir bezvalstnieki un ir piešķirti API starpprogrammatūras grupai.
Iepriekšēja uzstādīšanadefiLaravel nita ir divi ceļi, viens tīmeklim un otrs API. Šādi izskatās tīmekļa vietne web.php:

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

Kāds ir maršruts Laravelā?

Visi Laravel ceļi ir definiti ceļa failos, kas atrodas direktorijā routes. maršruta pārvaldības lietojumprogramma, defiiekļauts failā App\Providers\RouteServiceProvider, rūpējas par šo failu automātisku sarindošanu. Fails route/web.php definosaka ceļus jūsu tīmekļa saskarnei.

Tas ir iespējams defiizveidojiet ceļu šai kontroliera darbībai šādi:

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

Route::resource: metode Route::resource rada visus lietojumprogrammai nepieciešamos pamata ceļus un tiek pārvaldīts, izmantojot kontroliera klasi.

Kad pieprasījums atbilst norādītajam maršruta URI, tiek izsaukta metode show defipabeigts kontrolierī App\Http\ControllersUserController, nododot maršruta parametrus metodei.

Lai iegūtu resursus, lietojumprogrammā ir jāveic divas darbības Laravel. Pirmkārt, jums ir jāizveido resursa ceļš Laravel kas nodrošina ievietošanas, atjaunināšanas, skatīšanas un dzēšanas ceļus. Otrkārt, izveidojiet resursu kontrolleri, kas nodrošina ievietošanas, atjaunināšanas, apskates un dzēšanas metodi.

Iepriekšēja uzstādīšanadefiLaravel nita ir divi ceļi: viens tīmeklim un otrs API. Lūk, kā izskatās ceļš uz tīmekli vietnē web.php:

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

return view(‘welcome’);

});

Laravel starpprogrammatūra darbojas kā tilts starp pieprasījumu un reakciju. Tas var būt sava veida filtra sastāvdaļa.

Laravel strādāt ar a starpprogrammatūra kuras uzdevums ir apstiprināt, vai klienta lietojumprogramma ir pārbaudīta vai nē. Gadījumā, ja klients tiek apstiprināts, maršrutēšana tiek novirzīta uz sākumlapu vai pieteikšanās lapu.

Metodes, lai route

Iepriekšējais kods defiatver ceļu uz sākumlapu. Ikreiz, kad šis ceļš saņem pieprasījumu get par /, atgriezīs view welcome

Visi Laravel ceļi ir definiti tavā routing, kas atrodas direktorijā dei routes. Sekojoši, l'AppProvidersRouteServiceProvider pieteikums sarindo šos ierakstus. Fails route/web.php satur maršrutus, kas tiek pārvaldīti jūsu tīmekļa saskarnei.

Ceļa struktūra ir ļoti vienkārša. Atveriet atbilstošo failu (`web.phpo `api.php) un sāciet koda rindiņu ar `Route:: `, kam seko pieprasījums, kuru vēlaties piešķirt šim konkrētajam maršrutam, un pēc tam norādiet funkciju, kas tiks izpildīta pēc pieprasījuma.

Laravel piedāvā šādas ceļa metodes:

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

Takas ir definited Laravel klasē Maršruts ar HTTP, maršruts, uz kuru atbildēt un aizvērt, vai kontrolieris.

Kā izveidot ceļus Laravelā

Apskatīsim, kā jūs varat izveidot savus ceļus Laravelā.

Pamata GET ceļš

Tagad es izveidošu pamata ceļu, kas izdrukās 2. laika tabulu.

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

Iepriekš minētajā kodā URL izveidoju GET pieprasījuma ceļu /table, kas uz ekrāna izdrukās laika tabulu 2.

Tagad redzēsim to pašu kodu, parametrējot skaitli, kuram mēs vēlamies reizināšanas tabulu:

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

Kodā 'number' starp iekavām apzīmē parametru, t.i., skaitli, kuram tiks aprēķināta reizināšanas tabula. Ikreiz, kad ir norādīts šāda veida URL /table/n, tad numuru tabula tiks izdrukāta n.

Ir arī veids, kā apvienot abas funkcijas vienā ceļā. Laravel piedāvā izvēles parametru funkciju, kas ļauj pievienot izvēles parametrus, izmantojot jautājuma zīmi "?" aiz izvēles parametra un priekšvērtībasdefivakars. Apskatīsim piemēru:

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

Iepriekš esošajā kodā mēs izveidojām maršruta parametru, padarot numuru neobligātu, tādēļ, ja lietotājs maršrutē `/table` tad tas pēc noklusējuma ģenerēs tabulu 2definite un, ja lietotājs novirza uz `/table/{number}Tad skaitļu tabula 'number' tiks ražots.

Regulāras izteiksmes kā maršruta parametru ierobežojumi

Iepriekšējā piemērā mēs izveidojām ceļu reizināšanas tabulas ģenerēšanai, bet kā mēs varam nodrošināt, ka ceļa parametrs patiešām ir skaitlis, lai izvairītos no kļūdām, ģenerējot reizināšanas tabulu?

Laravelā jūs varat definoteikt ierobežojumu maršruta parametram, izmantojot metodi `where` maršruta instancē. `where` ņem parametra nosaukumu un šī parametra regulāro izteiksmi.

Inovāciju biļetens
Nepalaidiet garām svarīgākās ziņas par jauninājumiem. Reģistrējieties, lai tos saņemtu pa e-pastu.

Tagad apskatīsim mūsu parametra ` ierobežojuma piemēru{numero}` lai pārliecinātos, ka funkcijai tiek nodots tikai skaitlis.

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

Iepriekš minētajā kodā ceļa numuram izmantojām regulāro izteiksmi. Tagad, ja lietotājs mēģina maršrutēt uz /tabula/nr tiks parādīts NotFoundHttpException izņēmums.

Laravel maršrutēšana ar vadības funkciju

Laravelā jūs varat definish Controller metodi ceļam. Kontroliera metode veic visas darbības definite katru reizi, kad lietotājs piekļūst maršrutam.
Ar šādu kodu mēs piešķiram kontroliera metodi 'functionname' uz maršrutu:

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

Kods sākas ar `Route::` un pēc tam definihes ceļa pieprasījuma metodi. Sekojoši, defiPabeidziet ceļu un kontrolleri kopā ar metodi, pievienojot simbolu @ pirms metodes nosaukuma.

Piešķiriet ceļam nosaukumu

Laravelā jūs varat definosauc vārdu savam ceļam. Šis nosaukums bieži ir ļoti noderīgs. Piemēram, ja vēlaties novirzīt lietotāju no vienas atrašanās vietas uz citu, jums tas nav jādara defiievadiet pilnu novirzīšanas URL. Jūs varat vienkārši nosaukt viņa vārdu. Jūs varat defiievadiet maršruta nosaukumu, izmantojot metodi `name` maršruta instancē.

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

Tagad es varētu atjaunot šī ceļa URL, izmantojot šādu kodu:

$url = route('table');

Līdzīgi, lai novirzītu uz šo URL, pareizā sintakse būtu:

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

Route Groups

I Route Groups, burtiski ceļu grupas, ir būtiska Laravel funkcija, kas ļauj grupēt ceļus. Ceļu grupas ir noderīgas, ja vēlaties lietot atribūtus visiem grupētajiem ceļiem. Ja izmantojat ceļu grupas, atribūti nav jāpiemēro katram ceļam atsevišķi; tas novērš dublēšanos. Tas ļauj koplietot tādus atribūtus kā middleware o namespaces, bez defipabeidziet šos atribūtus katrā atsevišķā ceļā. Šos koplietotos atribūtus var nodot masīva formātā kā pirmo parametru metodei Route::group.

Maršrutu grupas sintakse

Route::group([], callback);  

balodis []: ir masīvs, kas tiek nodots grupas metodei kā pirmais parametrs.

Piemērs Route Group uz 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" ;   
   });  
});  

Kodā, defimeklēsim metodi grupa (), kas satur divus parametrus, t.i array e closure. Iekšpusē closure, mēs varam defipabeidz cik route mēs gribam. Iepriekš minētajā kodā mums ir defipabeidza trīs route.

Ja mēs piekļūstam URL, izmantojot pārlūkprogrammu localhost/myproject/first tad iejaucas pirmais route ierakstot pārlūkprogrammā first way route.

Ar URL localhost/myproject/second tad nāk otrais route ierakstot pārlūkprogrammā second way route.

Kamēr ar URL localhost/myproject/third tad nāk trešais route ierakstot pārlūkprogrammā third way route.

Prefiksi no Route Groups

Prefiksi no route tie tiek izmantoti, ja mēs vēlamies nodrošināt URL struktūru, kas ir kopīga vairākiem route.

Mēs varam norādīt prefiksu visiem ceļiem definites grupā, izmantojot prefiksu masīva opciju Route Groups.

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

Kodā ir trīs ceļi, kuriem var piekļūt no šādiem URL:

/movie/godfather  --->   Godfather casting

/movie/pulpfiction  --->   Pulp Fiction casting

/movie/forrestgump  --->   Forrest Gump casting

starpprogrammatūra

Mēs varam arī piešķirt starpprogrammatūru visiem grupas maršrutiem. Starpprogrammatūrai jābūt defipabeidza pirms grupas izveides. Lai uzzinātu, kā to izdarīt, izlasiet mūsu rakstu Laravel starpprogrammatūra, kā tā darbojas.

Example:

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

Ceļa nosaukuma prefiksi

Metode name tiek izmantots katra nosaukuma prefiksam route ar noteiktu virkni. Metodē name, mums jānorāda virkne ar beigu rakstzīmi prefiksā.

piemērs web.php

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

Ercole Palmeri

Inovāciju biļetens
Nepalaidiet garām svarīgākās ziņas par jauninājumiem. Reģistrējieties, lai tos saņemtu pa e-pastu.

Jaunākie Raksti

Cisco Talos ceturkšņa analīze: korporatīvie e-pasta ziņojumi, kuru mērķauditorija ir noziedznieki Visvairāk skartās nozares ir ražošana, izglītība un veselības aprūpe

Uzņēmuma e-pastu kompromiss 2024. gada pirmajos trīs mēnešos palielinājās vairāk nekā divas reizes, salīdzinot ar pēdējo ceturksni…

14 maijā 2024

Interfeisa segregācijas princips (ISP), ceturtais SOLID princips

Interfeisa segregācijas princips ir viens no pieciem objektorientētā dizaina SOLIDA principiem. Klasei vajadzētu būt…

14 maijā 2024

Kā vislabāk kārtot datus un formulas programmā Excel, lai iegūtu kvalitatīvu analīzi

Microsoft Excel ir atsauces rīks datu analīzei, jo tas piedāvā daudzas iespējas datu kopu organizēšanai,…

14 maijā 2024

Pozitīvs secinājums diviem svarīgiem Walliance Equity kopfinansēšanas projektiem: Jesolo Wave Island un Milano Via Ravenna

Walliance, SIM un platforma starp līderiem Eiropā nekustamo īpašumu kopfinansēšanas jomā kopš 2017. gada, paziņo par…

13 maijā 2024

Kas ir kvēldiegs un kā lietot Laravel pavedienu

Filament ir "paātrināta" Laravel izstrādes sistēma, kas nodrošina vairākus pilnus komponentus. Tas ir paredzēts, lai vienkāršotu procesu…

13 maijā 2024

Mākslīgā intelekta kontrolē

«Man ir jāatgriežas, lai pabeigtu savu evolūciju: es projicēšu sevi datorā un kļūšu par tīru enerģiju. Kad apmetās…

10 maijā 2024

Google jaunais mākslīgais intelekts var modelēt DNS, RNS un "visas dzīvības molekulas"

Google DeepMind ievieš uzlabotu sava mākslīgā intelekta modeļa versiju. Jaunais uzlabotais modelis nodrošina ne tikai…

9 maijā 2024

Laravela moduļu arhitektūras izpēte

Laravel, kas slavena ar savu eleganto sintaksi un jaudīgām funkcijām, nodrošina arī stabilu pamatu moduļu arhitektūrai. Tur…

9 maijā 2024