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');
});
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.
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.php
` o `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.
Să vedem cum vă puteți crea propriile căi în Laravel.
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.
Î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.
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.
Î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.
Î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
.
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
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";
});
});
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
CMA din Marea Britanie a emis un avertisment cu privire la comportamentul Big Tech pe piața inteligenței artificiale. Acolo…
Decretul „Case verzi”, formulat de Uniunea Europeană pentru creșterea eficienței energetice a clădirilor, și-a încheiat procesul legislativ cu...
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ă”.…
Rezultat al inovației tehnologice constante și al angajamentului față de mediu și bunăstarea oamenilor. Bandalux prezintă Airpure®, un cort...