Articole

Laravel: introducere în rutarea laravel

Rutarea în Laravel permite utilizatorilor să direcționeze toate solicitările aplicației către controlerul corespunzător. Majoritatea rutelor principale din Laravel recunosc și acceptă un identificator uniform de bun împreună cu o închidere, oferind un mod simplu și expresiv de rutare.

Ce este un traseu (traseu)?

Calea este o modalitate de a crea o adresă URL de solicitare pentru aplicația dvs. Aceste adrese URL nu trebuie să fie asociate cu anumite fișiere de pe un site web și sunt ușor de citit de om și prietenoase cu SEO.

În Laravel, căile sunt create în interiorul folderului fișierului routes. Ele sunt create în fișier web.php pentru site-uri web și în interior api.php pentru API-uri.

Aceste route sunt repartizate grupului middleware rețea, evidențiind starea sesiunii și securitatea CSRF. Traseele în route/api.php sunt apatride și sunt atribuite grupului de middleware API.
PreinstalareadefiLaravel Nita vine cu două căi, una pentru web și una pentru API. Așa arată calea pentru web în web.php:

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

Care este un traseu în Laravel?

Toate căile Laravel sunt definiti în fișierele de cale situate în director routes. Aplicația de gestionare a rutei, defiterminat în dosar App\Providers\RouteServiceProvider, se ocupă de alinierea automată a acestor fișiere. Fișierul route/web.php defitermină căile pentru interfața dvs. web.

Este posibil defiterminați o cale pentru această acțiune a controlerului după cum urmează:

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

Route::resource: metoda Route::resource produce toate căile de bază necesare pentru o aplicație și este gestionat prin clasa de controler.

Când o solicitare se potrivește cu URI-ul rutei specificat, metoda este invocată show defiterminat în controler App\Http\ControllersUserController, trecând parametrii rutei metodei.

Pentru resurse, trebuie să faceți două lucruri în aplicație Laravel. În primul rând, trebuie să creați o cale de resursă pe Laravel care oferă inserarea, actualizarea, vizualizarea și ștergerea căilor. În al doilea rând, creați un controler de resurse care oferă o metodă de inserare, actualizare, vizualizare și ștergere.

PreinstalareadefiLaravel Nita vine cu două căi: una pentru web și una pentru API. Iată cum arată ruta către web în web.php:

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

return view(‘welcome’);

});

Laravel Middleware acționează ca o punte între cerere și reacție. Poate fi un fel de componentă a filtrului.

Laravel lucra cu a middleware care are sarcina de a confirma dacă aplicația client este verificată sau nu. În cazul în care clientul este confirmat, rutarea redirecționează către pagina de pornire sau o pagină de conectare.

Metodele pentru route

Codul anterior defitermină o cale către pagina de pornire. Ori de câte ori această cale primește o solicitare get pentru /, va returna view welcome

Toate căile Laravel sunt definiti in ta routing, care se află în interiorul directorului dei routes. Prin urmare, l'AppProvidersRouteServiceProvider a aplicației aliniază aceste înregistrări. Fișierul route/web.php conține rutele care sunt gestionate pentru interfața dvs. web.

Structura căii este foarte simplă. Deschideți fișierul corespunzător (`web.phpo `api.php) și începeți linia de cod cu `Route:: `, urmat de solicitarea pe care doriți să o atribuiți acelei rute specifice și apoi specificați funcția care va fi efectuată în urma solicitării.

Laravel oferă următoarele metode de cale:

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

Căile sunt definitate în Laravel în cadrul clasei Route cu HTTP, ruta la care se răspunde și închiderea sau controlerul.

Cum să creați căi în Laravel

Să vedem cum vă puteți crea propriile căi în Laravel.

O cale GET de bază

Acum voi crea o cale de bază care va tipări tabelul de timp de 2.

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

În codul de mai sus, am creat o cale de solicitare GET pentru adresa URL /table, care va imprima pe ecran tabelul de timp de 2.

Acum să vedem același cod, parametrizând numărul pentru care dorim tabla înmulțirii:

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

În codul „number' între acolade reprezintă parametrul, adică numărul pentru care se va calcula tabla înmulțirii. Ori de câte ori este specificată o adresă URL de acest tip /table/n, apoi va fi tipărit tabelul de numere n.

Există, de asemenea, o modalitate de a combina ambele caracteristici într-o singură cale. Laravel oferă funcția de parametri opționali care vă permite să adăugați parametri opționali folosind semnul de întrebare „?” după parametrul opțional și valoarea predefinoaptea. Să vedem exemplul:

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

În codul de mai sus am creat parametrul nostru de rută, făcând numărul opțional, deci dacă un utilizator direcționează `/table` atunci va genera implicit tabelul cu 2definite și dacă un utilizator se îndreaptă către `/table/{number}Apoi tabelul cu numere 'number' vor fi produse.

Expresii regulate ca constrângeri pentru parametrii rutei

În exemplul anterior am creat o cale pentru generarea tabelului înmulțirii, dar cum ne putem asigura că parametrul căii este de fapt un număr, pentru a evita erorile la generarea tabelului înmulțirii?

În Laravel, poți defitermină o constrângere asupra parametrului de rută folosind metoda `where` pe instanța rutei. `where` preia numele parametrului și o expresie regulată pentru acel parametru.

Buletin informativ de inovare
Nu rata cele mai importante știri despre inovație. Înscrieți-vă pentru a le primi pe e-mail.

Acum să vedem un exemplu de constrângere pentru parametrul nostru `{numero}` pentru a vă asigura că numai un număr este transmis funcției.

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

În codul de mai sus, am folosit o expresie regulată pentru numărul căii. Acum, dacă un utilizator încearcă să se direcționeze către /tabel/nr va fi afișat o excepție NotFoundHttpException.

Laravel Routing cu funcție de control

În Laravel, poți defifinalizați o metodă Controller pentru o rută. O metodă de controler efectuează toate acțiunile definite de fiecare dată când un utilizator accesează traseul.
Cu următorul cod atribuim metoda controlerului 'functionname' spre un traseu:

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

Codul începe cu `Route::` și apoi defitermină metoda de solicitare a căii. Ulterior, defiFinalizați calea și controlerul împreună cu metoda, adăugând simbolul @ înaintea numelui metodei.

Dați un nume căii

În Laravel, poți defitermină un nume pentru calea ta. Acest nume este adesea foarte util. De exemplu, dacă doriți să redirecționați un utilizator dintr-o locație în alta, nu este necesar defiterminați adresa URL de redirecționare completă. Poți doar să-i dai numele. Puteți defiterminați numele rutei folosind metoda `name` în instanța rutei.

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

Acum, aș putea regenera adresa URL pentru această cale, prin următorul cod:

$url = route('table');

În mod similar, pentru redirecționarea către această adresă URL, sintaxa corectă ar fi:

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

Route Groups

I Route Groups, literalmente grupuri de căi, este o caracteristică esențială în Laravel, care vă permite să grupați căi. Grupurile de căi sunt utile atunci când doriți să aplicați atribute tuturor căilor grupate. Dacă utilizați grupuri de căi, nu trebuie să aplicați atributele individual fiecărei căi; aceasta evită dublarea. Vă permite să partajați atribute precum middleware o namespaces, fără defifinalizați aceste atribute pe fiecare cale individuală. Aceste atribute partajate pot fi transmise într-un format de matrice ca prim parametru al metodei Route::group.

Sintaxa unui grup de rute

Route::group([], callback);  

porumbel []: este o matrice transmisă metodei grup ca prim parametru.

Exemplu de Route Group în 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" ;   
   });  
});  

În cod, defihaideti sa gasim metoda grup(), care contine cei doi parametri, i.e array e closure. În interiorul closure, Noi putem defitermina câte route noi vrem. În codul de mai sus, avem defiterminat trei route.

Dacă prin browser accesăm adresa URL localhost/myproject/first apoi intervine primul route tastând în browser first way route.

Cu URL-ul localhost/myproject/second apoi vine al doilea route tastând în browser second way route.

În timp ce cu URL-ul localhost/myproject/third apoi vine al treilea route tastând în browser third way route.

Prefixele de Route Groups

Prefixele de route sunt folosite atunci când dorim să oferim o structură URL comună pentru multiple route.

Putem specifica prefixul pentru toate căile definite în cadrul grupului folosind opțiunea matrice de prefix în Route Groups.

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

Codul conține trei căi care pot fi accesate de la următoarele adrese URL:

/movie/godfather  --->   Godfather casting

/movie/pulpfiction  --->   Pulp Fiction casting

/movie/forrestgump  --->   Forrest Gump casting

middleware

De asemenea, putem atribui middleware tuturor rutelor dintr-un grup. Middleware-ul trebuie să fie defiterminat înainte de a crea grupul. Pentru a vedea cum să faceți acest lucru, citiți articolul nostru Laravel middleware cum funcționează.

Exemplu:

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

Prefixe de nume de cale

Metoda name este folosit pentru a prefix fiecare nume de route cu un șir specificat. In metoda name, trebuie să specificăm șirul cu un caracter final în prefix.

Exemplu web.php

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

Ercole Palmeri

Buletin informativ de inovare
Nu rata cele mai importante știri despre inovație. Înscrieți-vă pentru a le primi pe e-mail.

Articole recente

Autoritatea de reglementare antitrust din Marea Britanie ridică alarma BigTech cu privire la GenAI

CMA din Marea Britanie a emis un avertisment cu privire la comportamentul Big Tech pe piața inteligenței artificiale. Acolo…

Aprilie 18 2024

Casa Green: revoluție energetică pentru un viitor durabil în Italia

Decretul „Case verzi”, formulat de Uniunea Europeană pentru creșterea eficienței energetice a clădirilor, și-a încheiat procesul legislativ cu...

Aprilie 18 2024

Comerțul electronic în Italia la +27% conform noului Raport al Casaleggio Associati

Raportul anual al lui Casaleggio Associati privind comerțul electronic în Italia a fost prezentat. Raport intitulat „AI-Commerce: frontierele comerțului electronic cu inteligență artificială”.…

Aprilie 17 2024

Idee genială: Bandalux prezintă Airpure®, perdeaua care purifică aerul

Rezultat al inovației tehnologice constante și al angajamentului față de mediu și bunăstarea oamenilor. Bandalux prezintă Airpure®, un cort...

Aprilie 12 2024