tovar

Laravel: úvod do smerovania laravelov

Smerovanie v Laravel umožňuje používateľom smerovať všetky požiadavky aplikácií na príslušný ovládač. Väčšina primárnych trás v Laravel rozpozná a akceptuje Uniform Asset Identifier spolu s uzáverom, čo poskytuje jednoduchý a výrazný spôsob smerovania.

Čo je to trasa (trasa)?

Cesta je spôsob, ako vytvoriť adresu URL požiadavky pre vašu aplikáciu. Tieto adresy URL nemusia byť spojené s konkrétnymi súbormi na webovej lokalite a sú čitateľné pre ľudí a vhodné pre SEO.

V Laravel sa cesty vytvárajú v priečinku le routes. Sú vytvorené v súbore web.php pre webové stránky a v rámci nich api.php pre API.

Títo route sú priradené ku skupine middleware siete so zvýraznením stavu relácie a bezpečnosti CSRF. Trasy v route/api.php sú bezstavové a sú priradené do skupiny API middleware.
PredinštaláciadefiLaravel nita prichádza s dvoma cestami, jednou pre web a jednou pre API. Takto vyzerá cesta pre web web.php:

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

Aká je trasa v Laravel?

Všetky cesty Laravel sú definiti v súboroch cesty umiestnených v adresári routes. Aplikácia na správu trasy, defiukončené v spise App\Providers\RouteServiceProvider, sa postará o automatické zoradenie týchto súborov. Súbor route/web.php defiupraví cesty pre vaše webové rozhranie.

È príp deficestu pre túto akciu ovládača zadajte takto:

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

Route::resource: metóda Route::resource vytvára všetky základné cesty požadované pre aplikáciu a je riadený prostredníctvom triedy radiča.

Keď sa požiadavka zhoduje so zadaným identifikátorom URI cesty, metóda sa vyvolá show defihotové v ovládači App\Http\ControllersUserController, odovzdávanie parametrov trasy metóde.

Pre zdroje musíte v aplikácii urobiť dve veci laravel. Najprv musíte vytvoriť cestu k zdroju laravel ktorý poskytuje vkladanie, aktualizáciu, prezeranie a mazanie ciest. Po druhé, vytvorte radič prostriedkov, ktorý poskytuje metódu na vkladanie, aktualizáciu, prezeranie a odstraňovanie.

PredinštaláciadefiLaravel nita prichádza s dvoma cestami: jednou pre web a jednou pre API. Takto vyzerá cesta na web v web.php:

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

return view(‘welcome’);

});

Laravel Middleware funguje ako most medzi požiadavkou a reakciou. Môže to byť nejaký druh komponentu filtra.

laravel pracovať s a middleware ktorá má za úlohu potvrdiť, či je klientska aplikácia overená alebo nie. V prípade, že je klient potvrdený, smerovanie presmeruje na domovskú stránku alebo prihlasovaciu stránku.

Metódy pre route

Predchádzajúci kód defiotvorí cestu na domovskú stránku. Kedykoľvek táto cesta dostane požiadavku get za /, vráti view welcome

Všetky cesty Laravel sú definiti v tvojom routing, ktoré sa nachádzajú v adresári dei routes. v dôsledku toho l'AppProvidersRouteServiceProvider aplikácie zoradí tieto záznamy. Súbor route/web.php obsahuje trasy, ktoré sú spravované pre vaše webové rozhranie.

Štruktúra cesty je veľmi jednoduchá. Otvorte príslušný súbor (`web.phpo `api.php) a začnite riadok kódu s `Route:: `, nasleduje požiadavka, ktorú chcete priradiť k tejto konkrétnej trase, a potom zadajte funkciu, ktorá sa vykoná po požiadavke.

Laravel ponúka nasledujúce spôsoby cesty:

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

Cesty sú defiv Laravel v rámci triedy Route s HTTP, cestou na odpoveď a zatvorením, alebo ovládačom.

Ako vytvoriť cesty v Laravel

Pozrime sa, ako si môžete vytvoriť svoje vlastné cesty v Laravel.

Základná cesta GET

Teraz vytvorím základnú cestu, ktorá vytlačí tabuľku časov 2.

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

Vo vyššie uvedenom kóde som vytvoril cestu žiadosti GET pre adresu URL /table, ktorý vytlačí tabuľku časov 2 na obrazovke.

Teraz sa pozrime na rovnaký kód, parametrizujúci číslo, pre ktoré chceme tabuľku násobenia:

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

V kóde je 'number' medzi zátvorkami predstavuje parameter, teda číslo, pre ktoré sa vypočíta násobiaca tabuľka. Vždy, keď je zadaná adresa URL typu /table/n, potom sa vytlačí číselná tabuľka n.

Existuje tiež spôsob, ako spojiť obe funkcie do jednej cesty. Laravel ponúka funkciu voliteľných parametrov, ktorá vám umožňuje pridať voliteľné parametre pomocou otáznika '?' za voliteľným parametrom a pred hodnotoudefinoc. Pozrime sa na príklad:

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

Vo vyššie uvedenom kóde sme vytvorili náš parameter trasy, pričom číslo bolo voliteľné, takže ak používateľ smeruje `/table` potom štandardne vygeneruje tabuľku 2definite a ak používateľ smeruje na `/table/{number}Potom číselná tabuľka 'number' sa bude vyrábať.

Regulárne výrazy ako obmedzenia pre parametre trasy

V predchádzajúcom príklade sme vytvorili cestu na generovanie násobilky, ale ako môžeme zabezpečiť, aby parametrom cesty bolo skutočne číslo, aby sme sa vyhli chybám pri generovaní násobilky?

V Laravel môžete defipomocou metódy ` upravte obmedzenie parametra trasywhere` na inštancii trasy. `where` preberá názov parametra a regulárny výraz pre tento parameter.

Inovačný bulletin
Nenechajte si ujsť najdôležitejšie novinky o inováciách. Prihláste sa na ich odber e-mailom.

Teraz sa pozrime na príklad obmedzenia pre náš parameter `{numero}`, aby ste sa uistili, že do funkcie sa odovzdá iba číslo.

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

Vo vyššie uvedenom kóde sme pre číslo cesty použili regulárny výraz. Teraz, ak sa používateľ pokúsi nasmerovať na /tabuľka/č sa zobrazí výnimka NotFoundHttpException.

Laravel Routing s funkciou ovládania

V Laravel môžete definish Controller metódu pre trasu. Metóda ovládača vykonáva všetky akcie definite zakaždým, keď používateľ pristúpi k trase.
Pomocou nasledujúceho kódu priraďujeme metódu ovládača 'functionname' na trasu:

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

Kód začína s `Route::` a potom defidokončí metódu požiadavky na cestu. následne defiDokončite svoju cestu a ovládač spolu s metódou pridaním symbolu @ pred názov metódy.

Pomenujte cestu

V Laravel môžete defipomenujte svoju cestu. Toto meno je často veľmi užitočné. Ak napríklad chcete presmerovať používateľa z jedného miesta na druhé, nemusíte definish celú adresu URL presmerovania. Môžete len uviesť jeho meno. Môžeš defizistite názov trasy pomocou metódy `name` v inštancii trasy.

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

Teraz by som mohol vygenerovať adresu URL pre túto cestu pomocou nasledujúceho kódu:

$url = route('table');

Podobne pri presmerovaní na túto adresu URL by správna syntax bola:

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

Route Groups

I Route Groups, doslova skupiny ciest, je základná funkcia v Laravel, ktorá vám umožňuje zoskupovať cesty. Skupiny ciest sú užitočné, keď chcete použiť atribúty na všetky zoskupené cesty. Ak používate skupiny ciest, nemusíte atribúty aplikovať jednotlivo na každú cestu; tým sa zabráni duplicite. Umožňuje vám zdieľať atribúty ako middleware o namespaces, bez defidokončiť tieto atribúty na každej jednotlivej ceste. Tieto zdieľané atribúty možno odovzdať vo formáte poľa ako prvý parameter do metódy Route::group.

Syntax skupiny trás

Route::group([], callback);  

holubica []: je pole odovzdané metóde skupiny ako prvý parameter.

Príklad Route Group v 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" ;   
   });  
});  

V kóde defipoďme nájsť metódu skupina(), ktorý obsahuje dva parametre, t.j array e closure. Vnútri closure, Môžeme defidokončiť koľko route chceme. Vo vyššie uvedenom kóde máme defiskončili tri route.

Ak cez prehliadač pristupujeme k URL localhost/myproject/first potom zasiahne prvý route písaním v prehliadači first way route.

S adresou URL localhost/myproject/second potom príde druhý route písaním v prehliadači second way route.

Zatiaľ čo s URL localhost/myproject/third potom príde tretí route písaním v prehliadači third way route.

Predpony z Route Groups

Predpony z route používajú sa, keď chceme poskytnúť štruktúru adresy URL spoločnú pre viaceré route.

Pre všetky cesty môžeme zadať predponu definite v rámci skupiny pomocou voľby poľa prefixov v Route Groups.

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

Kód obsahuje tri cesty, ku ktorým je možné pristupovať z nasledujúcich adries URL:

/movie/godfather  --->   Godfather casting

/movie/pulpfiction  --->   Pulp Fiction casting

/movie/forrestgump  --->   Forrest Gump casting

middleware

Môžeme tiež priradiť middleware všetkým trasám v rámci skupiny. Middleware musí byť defidokončené pred vytvorením skupiny. Ak chcete zistiť, ako to urobiť, prečítajte si náš článok Laravel middleware, ako to funguje.

esempio:

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

Predpony názvu cesty

Metóda name sa používa na predponu každého mena route so zadaným reťazcom. V metóde name, musíme zadať reťazec s koncovým znakom v predpone.

príklad web.php

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

Ercole Palmeri

Inovačný bulletin
Nenechajte si ujsť najdôležitejšie novinky o inováciách. Prihláste sa na ich odber e-mailom.

Nedávne články

Výhody farebných stránok pre deti - svet mágie pre všetky vekové kategórie

Rozvíjanie jemnej motoriky pomocou vyfarbovania pripravuje deti na zložitejšie zručnosti, ako je písanie. Na farbenie…

2 mája 2024

Budúcnosť je tu: Ako námorný priemysel prináša revolúciu do globálnej ekonomiky

Námorný sektor je skutočnou globálnou ekonomickou veľmocou, ktorá smerovala k 150 miliardovému trhu...

1 mája 2024

Vydavatelia a OpenAI podpisujú dohody o regulácii toku informácií spracovávaných umelou inteligenciou

Minulý pondelok Financial Times oznámili dohodu s OpenAI. FT licencuje svoju žurnalistiku svetovej triedy…

Apríla 30 2024

Online platby: Takto budete vďaka streamovacím službám platiť navždy

Milióny ľudí platia za streamovacie služby a platia mesačné predplatné. Je bežný názor, že si…

Apríla 29 2024