Tee on viis oma rakendusele päringu URL-i loomiseks. Neid URL-e ei pea seostama veebisaidil olevate konkreetsete failidega ning need on inimestele loetavad ja SEO-sõbralikud.
Laravelis luuakse teed kaustas le routes
. Need luuakse failis web.php
veebisaitide jaoks ja sees api.php
API-de jaoks.
Need route
on määratud rühma middleware
võrk, tõstes esile seansi oleku ja turvalisuse CSRF
. Marsruudid sisse route/api.php
need on kodakondsuseta ja on määratud API vahevara rühma.
EelinstalliminedefiLaravel nital on kaks teed, üks veebi ja teine API jaoks. Nii näeb välja veebitee web.php
:
Route::get('/', function () {
return view('welcome');
});
Kõik Laraveli teed on definiti kataloogis asuvates teefailides routes
. marsruudi haldamise rakendus, defitoimikusse kantud App\Providers\RouteServiceProvider
, hoolitseb nende failide automaatse järjestamise eest. Fail route/web.php
defimäärab teie veebiliidese teed.
See on võimalik defimäärake selle kontrolleri toimingu tee järgmiselt:
Route::get(‘user/{id}’, ‘UserController@show’);
Route::resource
: meetod Route::resource
toodab kõik rakenduse jaoks vajalikud põhiteed ja seda hallatakse kontrolleriklassi kaudu.
Kui päring vastab määratud marsruudi URI-le, käivitatakse meetod show
defikontrolleris valmis App\Http\ControllersUserController
, edastades marsruudi parameetrid meetodile.
Ressursside jaoks peate rakenduses tegema kaks asja Laravel. Esiteks peate looma ressursitee Laravel mis pakub sisestamise, värskendamise, vaatamise ja kustutamise teid. Teiseks looge ressursikontroller, mis pakub meetodit sisestamiseks, värskendamiseks, vaatamiseks ja kustutamiseks.
EelinstalliminedefiLaravel nital on kaks teed: üks veebi ja teine API jaoks. Veebi marsruut veebisaidil web.php näeb välja järgmine:
Route::get(‘/’, function () {
return view(‘welcome’);
});
Laraveli vahevara toimib sillana taotluse ja reaktsiooni vahel. See võib olla mingi filtrikomponent.
Laravel töötama koos a vahevara mille ülesanne on kinnitada, kas kliendirakendus on kinnitatud või mitte. Kui klient on kinnitatud, suunab marsruutimine avalehele või sisselogimislehele.
route
Eelmine kood defiavab tee avalehele. Kui see marsruut saab päringu get
kohta /
, tagastab view
welcome
.
Kõik Laraveli teed on definiti sinus routing
, mis asuvad kataloogis dei routes
. Järelikult l'AppProvidersRouteServiceProvider
rakenduses reastab need kirjed. Fail route/web.php
sisaldab marsruute, mida hallatakse teie veebiliidese jaoks.
Tee struktuur on väga lihtne. Avage sobiv fail (`web.php
` o `api.php
` ) ja alusta koodirida tähega `Route:: `
, millele järgneb päring, mille soovite sellele konkreetsele marsruudile määrata, ja seejärel määrake funktsioon, mis pärast päringut täidetakse.
Laravel pakub järgmisi teemeetodeid:
get
post
put
delete
patch
options
Teed on definited Laravelis klassis Route HTTP-ga, marsruudile vastamiseks ja sulgemiseks või kontrolleriga.
Vaatame, kuidas saate Laravelis oma radu luua.
Nüüd loon põhitee, mis prindib ajatabeli 2.
Route::get('/table', function () {
for($i =1; $i <= 10 ; $i++){
echo "$i * 2 = ". $i*2 ."<br>";
}
});
Ülaltoodud koodis lõin URL-i jaoks GET-i päringu tee /table
, mis prindib ekraanile ajatabeli 2.
Nüüd vaatame sama koodi, parameetrites arvu, mille jaoks korrutustabelit tahame:
Route::get('/table/{number}', function ($number) {
for($i =1; $i <= 10 ; $i++){
echo "$i * $number = ". $i* $number ."<br>";
}
});
Koodis on 'number
' sulgude vahel tähistab parameetrit, st arvu, mille jaoks korrutustabel arvutatakse. Kui on määratud seda tüüpi URL /table/n
, siis prinditakse numbritabel n
.
Samuti on võimalus ühendada mõlemad funktsioonid ühel teel. Laravel pakub valikuliste parameetrite funktsiooni, mis võimaldab lisada valikulisi parameetreid kasutades küsimärki "?" pärast valikulist parameetrit ja eelväärtustdefiõhtune. Vaatame näidet:
Route::get('/table/{number?}', function ($number = 2) {
for($i =1; $i <= 10 ; $i++){
echo "$i * $number = ". $i* $number ."<br>";
}
});
Ülaltoodud koodis lõime oma marsruudi parameetri, muutes numbri valikuliseks, nii et kui kasutaja marsruudib `/table
` siis loob see vaikimisi tabeli 2definite ja kui kasutaja suunab aadressi `/table/{number}
Siis numbritabel 'number'
hakatakse tootma.
Eelmises näites lõime tee korrutustabeli genereerimiseks, kuid kuidas tagada, et tee parameeter on tegelikult arv, et vältida vigu korrutustabeli genereerimisel?
Laravelis saate defipiirab marsruudi parameetrit, kasutades meetodit `where
` marsruudi eksemplaril. `where
` võtab parameetri nime ja selle parameetri regulaaravaldise.
Vaatame nüüd näidet meie parameetri ` piirangust{numero}
` veendumaks, et funktsioonile edastatakse ainult arv.
Route:: get ( '/table/{numero?}' , funzione ( $numero = 2 ) {
for( $i = 1 ; $i < = 10 ; $i + + ) {
echo "$i * $numero = " . $i * $numero . "<br>" ;
}
} )->where( 'numero' , '[0-9]+' ) ;
Ülaltoodud koodis kasutasime tee numbri jaoks regulaaravaldist. Nüüd, kui kasutaja proovib marsruutida aadressile /tabel/nr kuvatakse erand NotFoundHttpException.
Laravelis saate defimäärama marsruudi jaoks kontrolleri meetodi. Kontrolleri meetod teostab kõik toimingud definite iga kord, kui kasutaja marsruudile ligi pääseb.
Järgmise koodiga määrame kontrolleri meetodi 'functionname'
marsruudile:
Route:: get ( '/home' , 'YourController@functionname' ) ;
Kood algab tähega `Route::`
ja seetõttu defimäärab tee päringumeetodi. Järgnevalt defiLõpetage oma tee ja kontroller koos meetodiga, lisades meetodi nime ette @-sümboli.
Laravelis saate defipane oma teele nimi. See nimi on sageli väga kasulik. Näiteks kui soovite kasutaja ühest asukohast teise suunata, ei pea te seda tegema defitäielik ümbersuunamise URL. Sa võid lihtsalt tema nime anda. Sa saad defimäärake marsruudi nimi meetodiga `name
` marsruudi eksemplaris.
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’);
Nüüd saan selle tee URL-i uuesti luua järgmise koodi abil:
$url = route('table');
Samamoodi oleks sellele URL-ile ümbersuunamisel õige süntaks:
return redirect()->route('table');
Route Groups
I Route Groups
, sõna otseses mõttes teerühmad, on Laraveli oluline funktsioon, mis võimaldab teid rühmitada. Teerühmad on kasulikud, kui soovite atribuute rakendada kõigile rühmitatud teedele. Kui kasutate teerühmi, ei pea te atribuute igale teele eraldi rakendama. see väldib dubleerimist. See võimaldab teil jagada selliseid atribuute nagu middleware
o namespaces
, ilma defilõpetage need atribuudid igal üksikul teel. Neid jagatud atribuute saab edastada massiivivormingus meetodi esimese parameetrina Route::group
.
Marsruudirühma süntaks
Route::group([], callback);
tuvi []: on massiiv, mis edastatakse rühmameetodile esimese parameetrina.
Näide Route Group
sisse 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" ;
});
});
Koodis defileiame meetodi Grupp(), mis sisaldab kahte parameetrit, st array
e closure
. Sees closure
, Me saame defilõpeta kui palju route
me tahame. Ülaltoodud koodis on meil defilõpetas kolm route
.
Kui jõuame URL-ile brauseri kaudu localhost/myproject/first
siis sekkub esimene route
tippides brauserisse first way route
.
Koos URL-iga localhost/myproject/second
siis tuleb teine route
tippides brauserisse second way route
.
Kuigi URL-iga localhost/myproject/third
siis tuleb kolmas route
tippides brauserisse third way route
.
Route Groups
Eesliited route
neid kasutatakse siis, kui soovime pakkuda mitmele ühist URL-i struktuuri route
.
Saame määrata kõigi teede eesliite definites rühma sees, kasutades prefiksi massiivi valikut Route Groups
.
Näide 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";
});
});
Kood sisaldab kolme teed, millele pääseb juurde järgmistelt URL-idelt:
/movie/godfather ---> Godfather casting
/movie/pulpfiction ---> Pulp Fiction casting
/movie/forrestgump ---> Forrest Gump casting
Samuti saame määrata vahevara kõigile grupi marsruutidele. Vahevara peab olema defilõpetanud enne rühma loomist. Et näha, kuidas seda teha, lugege meie artiklit Laraveli vahevara, kuidas see töötab.
Näide:
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";
});
});
Meetod name
kasutatakse iga nime eesliitena route
määratud stringiga. Meetodis name
, peame määrama stringi, mille eesliites on lõpumärk.
näide web.php
Route::name('movie.')->group(function()
{
Route::get('users', function()
{
return "movie.films";
})->name('films');
});
Ercole Palmeri
Veeami Coveware jätkab küberväljapressimise juhtumitele reageerimise teenuste pakkumist. Coveware pakub kohtuekspertiisi ja heastamisvõimalusi…
Ennustav hooldus muudab nafta- ja gaasisektori pöördeliseks uuendusliku ja ennetava lähenemisega tehaste juhtimisele.…
Ühendkuningriigi CMA on väljastanud hoiatuse Big Techi käitumise kohta tehisintellekti turul. Seal…
Euroopa Liidu poolt hoonete energiatõhususe suurendamiseks koostatud roheliste majade dekreet on lõpetanud oma seadusandliku protsessi…