It paad is in manier om in fersyk-URL foar jo applikaasje te meitsjen. Dizze URL's hoege net te ferbûn te wêzen mei spesifike bestannen op in webside en binne minsklik lêsber en SEO-freonlik.
Yn Laravel wurde paden makke binnen de le map routes
. Se wurde makke yn de triem web.php
foar websiden, en binnen api.php
foar APIs.
Dizze route
wurde tawiisd oan de groep middleware
netwurk, markearje sesjestatus en feiligens CSRF
. De rûtes yn route/api.php
se binne stateless en wurde tawiisd oan de API middleware groep.
De pre-ynstallaasjedefiLaravel nita komt mei twa paden, ien foar it web en ien foar de API. Dit is hoe't it paad foar web yn sjocht web.php
:
Route::get('/', function () {
return view('welcome');
});
Alle Laravel paden binne definiti yn 'e paadbestannen yn' e map routes
. De applikaasje foar rûtebehear, definised yn de triem App\Providers\RouteServiceProvider
, soarget foar it automatysk linen fan dizze bestannen. It dokumint route/web.php
definishes de paden foar jo web ynterface.
It is mooglik definish in paad foar dizze controller aksje as folget:
Route::get(‘user/{id}’, ‘UserController@show’);
Route::resource
: de metoade Route::resource
produsearret alle basis paden nedich foar in applikaasje en wurdt beheard fia de controller klasse.
As in fersyk oerienkomt mei de oantsjutte rûte URI, wurdt de metoade oproppen show
defiklear yn de controller App\Http\ControllersUserController
, trochjaan fan de rûte parameters oan de metoade.
Foar boarnen moatte jo twa dingen dwaan op 'e applikaasje Laravel. Earst moatte jo in boarnepaad oanmeitsje Laravel dat jout paden ynfoegje, update, besjen en wiskje. Twad, meitsje in boarne-controller dy't in metoade leveret foar it ynfoegje, bywurkje, besjen en wiskjen.
De pre-ynstallaasjedefiLaravel nita komt mei twa paden: ien foar it web en ien foar de API. Hjir is hoe't de rûte nei it web derút sjocht yn web.php:
Route::get(‘/’, function () {
return view(‘welcome’);
});
Laravel Middleware fungearret as brêge tusken it fersyk en de reaksje. It kin in soarte fan filterkomponint wêze.
Laravel wurkje mei a middleware dy't de taak hat om te befêstigjen oft de kliïntapplikaasje is ferifiearre of net. Yn it gefal dat de klant is befêstige, dan routing trochferwizings nei de thússide of in oanmeldside.
route
De foarige koade definishes in paad nei de thússide. Wannear't dizze rûte in fersyk krijt get
mei /
, sil weromkomme de view
welcome
.
Alle Laravel paden binne definit yn dyn routing
, dy't lizze binnen de triemtafel dei routes
. Dêrtroch, l'AppProvidersRouteServiceProvider
fan 'e applikaasje linet dizze records op. It dokumint route/web.php
befettet de rûtes dy't wurde beheard foar jo webynterface.
De paadstruktuer is heul ienfâldich. Iepenje de passende triem (`web.php
` o `api.php
` ) en begjinne de rigel fan koade mei `Route:: `
, folge troch it fersyk dat jo wolle tawize oan dy spesifike rûte en spesifisearje dan de funksje dy't sil wurde útfierd nei it fersyk.
Laravel biedt de folgjende paadmetoaden:
get
post
put
delete
patch
options
De paden binne definited yn Laravel binnen de rûteklasse mei HTTP, de rûte om te antwurdzjen en it sluten, as de controller.
Litte wy sjen hoe't jo jo eigen paden kinne oanmeitsje yn Laravel.
No sil ik in basispaad meitsje dat de tiidstabel fan 2 sil printsje.
Route::get('/table', function () {
for($i =1; $i <= 10 ; $i++){
echo "$i * 2 = ". $i*2 ."<br>";
}
});
Yn 'e boppesteande koade haw ik in GET-oanfraachpaad makke foar de URL /table
, dat sil printsje de tiid tabel fan 2 op it skerm.
Litte wy no deselde koade sjen, it parameterisearjen fan it nûmer wêrfoar wy de multiplikaasjetabel wolle:
Route::get('/table/{number}', function ($number) {
for($i =1; $i <= 10 ; $i++){
echo "$i * $number = ". $i* $number ."<br>";
}
});
Yn de koade de 'number
' tusken de beugels stiet foar de parameter, d.w.s. it getal wêrfoar de multiplikaasjetabel sil wurde berekkene. Wannear't in URL fan it type wurdt oantsjutte /table/n
, dan wurdt de nûmertabel printe n
.
D'r is ek de manier om beide funksjes yn ien paad te kombinearjen. Laravel biedt de opsjonele parameterfunksje wêrmei jo opsjonele parameters kinne tafoegje mei it fraachteken '?' nei de opsjonele parameter en de pre weardedefinite. Litte wy it foarbyld sjen:
Route::get('/table/{number?}', function ($number = 2) {
for($i =1; $i <= 10 ; $i++){
echo "$i * $number = ". $i* $number ."<br>";
}
});
Yn 'e koade hjirboppe hawwe wy ús rûteparameter makke, wêrtroch it nûmer opsjoneel is, dus as in brûker rûtes `/table
` dan sil it standert de tabel fan 2 generearjedefinite en as in brûker rûtes nei `/table/{number}
Dan de nûmer tabel 'number'
produsearre wurde.
Yn it foarige foarbyld hawwe wy in paad makke foar it generearjen fan de multiplikaasjetabel, mar hoe kinne wy derfoar soargje dat de parameter fan it paad eins in nûmer is, om flaters te foarkommen by it generearjen fan de multiplikaasjetabel?
Yn Laravel kinne jo definish in beheining op 'e rûteparameter mei de metoade `where
` op de rûte eksimplaar. De `where
` nimt de parameternamme en in reguliere ekspresje foar dy parameter.
Litte wy no in foarbyld sjen fan in beheining foar ús `parameter{numero}
` om der wis fan te wêzen dat mar in nûmer wurdt trochjûn oan de funksje.
Route:: get ( '/table/{numero?}' , funzione ( $numero = 2 ) {
for( $i = 1 ; $i < = 10 ; $i + + ) {
echo "$i * $numero = " . $i * $numero . "<br>" ;
}
} )->where( 'numero' , '[0-9]+' ) ;
Yn 'e boppesteande koade brûkten wy in reguliere útdrukking foar it paadnûmer. No, as in brûker besiket te rûte nei /tabel/nr sil werjûn wurde in NotFoundHttpException útsûndering.
Yn Laravel kinne jo definish in Controller metoade foar in rûte. In kontrôlemetoade fiert alle aksjes út definite elke kear as in brûker tagong hat ta de rûte.
Mei de folgjende koade jouwe wy de kontrôlemetoade ta 'functionname'
nei in rûte:
Route:: get ( '/home' , 'YourController@functionname' ) ;
De koade begjint mei `Route::`
en dêrom definishes de fersyk metoade foar it paad. Dêrnei, defiFinish jo paad en kontrôler tegearre mei de metoade troch it tafoegjen fan it @-symboal foar de metoadenamme.
Yn Laravel kinne jo definish in namme foar dyn paad. Dizze namme is faak tige brûkber. As jo bygelyks in brûker fan de iene lokaasje nei de oare wolle omliede, hoege jo dat net definish de folsleine trochferwizing URL. Jo kinne gewoan syn namme jaan. Do kinst definish de rûtenamme mei de metoade `name
` yn it rûteeksimplaar.
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’);
No koe ik de url foar dit paad regenerearje, fia de folgjende koade:
$url = route('table');
Lykas, foar trochferwizing nei dizze URL, soe de juste syntaksis wêze:
return redirect()->route('table');
Route Groups
I Route Groups
, letterlik paadgroepen, is in wêzentlike funksje yn Laravel, wêrmei jo paden groepearje kinne. Paadgroepen binne handich as jo attributen tapasse wolle op alle groepearre paden. As jo brûke paad groepen, Jo hoege net in tapassing de attributen yndividueel foar elk paad; dit foarkomt duplikaasje. It lit jo attributen diele lykas middleware
o namespaces
,sûnder defifinish dizze attributen op elk yndividueel paad. Dizze dielde attributen kinne wurde trochjûn yn in arrayformaat as de earste parameter foar de metoade Route::group
.
Syntaksis fan in rûtegroep
Route::group([], callback);
Dove []: is in array trochjûn oan de groep metoade as de earste parameter.
Foarbyld fan Route Group
nel 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" ;
});
});
Yn de koade, defilitte wy de metoade fine groep(), dy't de twa parameters befettet, d.w.s array
e closure
. Binnen de closure
, we kinne defifinish hoefolle route
Wy wolle. Yn 'e boppesteande koade hawwe wy defiklear trije route
.
As fia browser wy tagong ta de URL localhost/myproject/first
dan grypt de earste yn route
typen yn 'e browser first way route
.
Mei de URL localhost/myproject/second
dan komt de twadde route
typen yn 'e browser second way route
.
Wylst mei de URL localhost/myproject/third
dan komt de tredde route
typen yn 'e browser third way route
.
Route Groups
De foarheaksels fan route
se wurde brûkt as wy wolle leverje in URL struktuer mienskiplik foar meardere route
.
Wy kinne it foarheaksel opjaan foar alle paden definites binnen de groep mei help fan de prefix array opsje yn Route Groups
.
Foarbyld fan 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";
});
});
De koade befettet trije paden dy't tagonklik wurde kinne fanút de folgjende URL's:
/movie/godfather ---> Godfather casting
/movie/pulpfiction ---> Pulp Fiction casting
/movie/forrestgump ---> Forrest Gump casting
Wy kinne ek middleware tawize oan alle rûtes binnen in groep. De middleware moat wêze defiklear foar it meitsjen fan de groep. Om te sjen hoe't jo dit dwaan, lês ús artikel Laravel middleware hoe't it wurket.
foarbyld:
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";
});
});
De metoade name
wurdt brûkt om elke namme foar foar te kommen route
mei in oantsjutte tekenrige. Yn 'e metoade name
, wy moatte de tekenrige opjaan mei in efterfolgjende karakter yn it foarheaksel.
foarbyld web.php
Route::name('movie.')->group(function()
{
Route::get('users', function()
{
return "movie.films";
})->name('films');
});
Ercole Palmeri
De marinesektor is in wiere wrâldwide ekonomyske macht, dy't navigearre is nei in merk fan 150 miljard ...
Ofrûne moandei kundige de Financial Times in deal oan mei OpenAI. FT lisinsje har sjoernalistyk fan wrâldklasse ...
Miljoenen minsken betelje foar streamingtsjinsten, beteljen moanlikse abonnemintskosten. It is gewoane miening dat jo ...
Coveware troch Veeam sil trochgean mei it leverjen fan antwurdtsjinsten foar cyberafpersing ynsidint. Coveware sil forensyske en sanearjen mooglikheden oanbiede ...