Chemen an se yon fason pou kreye yon URL demann pou aplikasyon w lan. URL sa yo pa oblije asosye ak dosye espesifik sou yon sit entènèt epi yo lizib epi yo optimize pou SEO.
Nan Laravel, chemen yo kreye nan katab dosye yo routes
. Yo kreye nan dosye a web.php
pou sit entènèt, ak nan api.php
pou APIs.
sa yo route
yo asiyen nan gwoup la middleware
rezo, mete aksan sou eta sesyon ak sekirite CSRF
. Wout yo nan route/api.php
yo apatrid epi yo asiyen nan gwoup middleware API.
Pre-enstalasyon andefiLaravel nita vini ak de chemen, youn pou entènèt la ak lòt la pou API a. Men ki jan chemen an nan entènèt la sanble web.php
:
Route::get('/', function () {
return view('welcome');
});
Tout chemen Laravel yo ye definited nan dosye yo chemen yo te jwenn nan anyè a routes
. Aplikasyon jesyon wout la, definited nan dosye a App\Providers\RouteServiceProvider
, pran swen otomatikman alignement fichiers sa yo. Dosye a route/web.php
defifini chemen yo pou koòdone entènèt ou an.
Li posib defifini yon chemen pou aksyon kontwolè sa a jan sa a:
Route::get(‘user/{id}’, ‘UserController@show’);
Route::resource
: metòd la Route::resource
pwodui tout chemen debaz ki nesesè pou yon aplikasyon epi li jere atravè klas kontwolè a.
Lè yon demann matche ak URI wout espesifye a, yo rele metòd la show
definited nan kontwolè a App\Http\ControllersUserController
, pase paramèt wout yo nan metòd la.
Pou resous, ou bezwen fè de bagay sou aplikasyon an Laravel. Premyèman, ou bezwen kreye yon chemen resous sou Laravel ki bay insert, mete ajou, wè ak efase chemen. Dezyèmman, kreye yon kontwolè resous ki bay yon metòd pou mete, mete ajou, gade, ak efase.
Pre-enstalasyon andefiLaravel nita vini ak de chemen: youn pou entènèt la ak lòt la pou API a. Men ki jan wout entènèt la sanble nan web.php:
Route::get(‘/’, function () {
return view(‘welcome’);
});
Laravel Middleware aji kòm yon pon ant demann lan ak reyaksyon an. Li kapab yon sòt de eleman filtre.
Laravel travay ak yon middleware ki gen travay pou konfime si aplikasyon kliyan an verifye oswa ou pa. Nan ka kliyan an konfime, Lè sa a, wout la redireksyon nan paj kay la oswa yon paj login.
route
Kòd anvan an defiyon chemen nan paj lakay la parèt. Chak fwa wout sa a resevwa yon demann get
pou /
, pral retounen nan view
welcome
.
Tout chemen Laravel yo ye defini nan dosye ou yo routing
, ki sitiye andedan anyè a dei routes
. An konsekans, l'AppProvidersRouteServiceProvider
nan aplikasyon an liy dosye sa yo. Dosye a route/web.php
gen wout ki jere pou koòdone entènèt ou an.
Estrikti wout yo trè senp. Louvri dosye ki apwopriye a (`web.php
` o `api.php
` ) epi kòmanse liy kòd la ak `Route:: `
, ki te swiv pa demann ou vle bay nan wout espesifik sa a epi apre sa presize fonksyon ki pral fèt apre demann lan.
Laravel ofri metòd chemen sa yo:
get
post
put
delete
patch
options
Wout yo se definited nan Laravel andedan klas la Route ak HTTP, wout la pou reponn ak fèmti a, oswa kontwolè a.
Ann wè ki jan ou ka kreye pwòp wout ou nan Laravel.
Koulye a, mwen pral kreye yon chemen debaz ki pral enprime tab la 2 fwa.
Route::get('/table', function () {
for($i =1; $i <= 10 ; $i++){
echo "$i * 2 = ". $i*2 ."<br>";
}
});
Nan kòd ki anwo a, mwen te kreye yon chemen demann GET pou URL la /table
, ki pral enprime 2 fwa tab la sou ekran an.
Ann wè menm kòd la kounye a, paramèt nimewo pou ki nou vle tab miltiplikasyon an:
Route::get('/table/{number}', function ($number) {
for($i =1; $i <= 10 ; $i++){
echo "$i * $number = ". $i* $number ."<br>";
}
});
Nan kòd la 'number
' ant parantèz yo ki reprezante paramèt la, sa vle di nimewo pou yo pral kalkile tab miltiplikasyon an. Chak fwa yo espesifye yon URL tankou sa a /table/n
, Lè sa a, tablo nimewo a pral enprime n
.
Genyen tou yon fason yo konbine tou de karakteristik nan yon sèl chemen. Laravel ofri karakteristik opsyon paramèt ki pèmèt ou ajoute paramèt si ou vle lè l sèvi avèk mak kesyon '?' apre paramèt opsyonèl la ak valè pre adefinwit. Ann wè egzanp lan:
Route::get('/table/{number?}', function ($number = 2) {
for($i =1; $i <= 10 ; $i++){
echo "$i * $number = ". $i* $number ."<br>";
}
});
Nan kòd ki pi wo a nou te kreye paramèt wout nou an, fè nimewo a opsyonèl, kidonk si yon itilizatè wout `/table
` Lè sa a, li pral jenere tab nan 2 pa pre anviwònmandefinita epi si yon itilizatè wout nan `/table/{number}
Se poutèt sa li se tab la nimewo 'number'
pral pwodwi.
Nan egzanp anvan an nou te kreye yon chemen pou jenere tab miltiplikasyon an, men ki jan nou ka asire ke paramèt chemen an se aktyèlman yon nimewo, pou fè pou evite erè pandan jenerasyon tab miltiplikasyon an?
Nan Laravel, ou kapab defifini yon kontrent sou paramèt wout la lè l sèvi avèk metòd la `where
` sou egzanp wout la. `where
` aksepte non paramèt la ak yon ekspresyon regilye pou paramèt sa a.
Koulye a, ann wè yon egzanp yon kontrent pou paramèt nou an `{numero}
` pou asire ke se sèlman yon nimewo pase nan fonksyon an.
Route:: get ( '/table/{numero?}' , funzione ( $numero = 2 ) {
for( $i = 1 ; $i < = 10 ; $i + + ) {
echo "$i * $numero = " . $i * $numero . "<br>" ;
}
} )->where( 'numero' , '[0-9]+' ) ;
Nan kòd ki anwo a, nou te itilize yon ekspresyon regilye pou nimewo chemen an. Koulye a, si yon itilizatè ap eseye wout nan /tab/no , yo pral parèt yon eksepsyon NotFoundHttpException.
Nan Laravel, ou kapab defifini yon metòd Kontwolè pou yon wout. Yon metòd kontwolè fè tout aksyon yo definite chak fwa yon itilizatè jwenn aksè nan wout la.
Avèk kòd sa a nou ap bay metòd kontwolè a 'functionname'
nan yon wout:
Route:: get ( '/home' , 'YourController@functionname' ) ;
Kòd la kòmanse ak `Route::`
ak Lè sa a, defimetòd demann pou wout la fini. Apre sa, defifini chemen w ak kontwolè w ansanm ak metòd la lè w ajoute senbòl @ anvan non metòd la.
Nan Laravel, ou kapab defivini ak yon non pou chemen ou. Non sa a souvan trè itil. Pou egzanp, si ou vle redireksyon yon itilizatè soti nan yon kote nan yon lòt, ou pa bezwen defifini URL la redireksyon konplè. Ou ka tou senpleman bay non li. Ou kapab definite non wout la lè l sèvi avèk metòd la `name
` nan egzanp wout la.
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’);
Koulye a, mwen te kapab rejenere URL la pou chemen sa a, atravè kòd sa a:
$url = route('table');
Menm jan an tou, pou redireksyon sou URL sa a, sentaks ki kòrèk la ta dwe:
return redirect()->route('table');
Route Groups
I Route Groups
, literalman gwoup chemen, se yon karakteristik esansyèl nan Laravel, ki pèmèt ou gwoup chemen. Gwoup chemen yo itil lè ou vle aplike atribi nan tout chemen gwoupe yo. Si w itilize gwoup wout, ou pa oblije aplike atribi endividyèlman nan chak wout; sa a evite repetisyon. Li pèmèt ou pataje atribi tankou middleware
o namespaces
, san definise atribi sa yo sou chak chemen sèl. Atribi pataje sa yo ka pase nan yon fòma etalaj kòm premye paramèt nan metòd la Route::group
.
Sentaks yon gwoup wout
Route::group([], callback);
ti pijon []: se yon etalaj ki pase nan metòd gwoup la kòm premye paramèt la.
Egzanp de Route Group
nan 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" ;
});
});
Nan kòd la, defiAnn kòmanse metòd la gwoup (), ki gen de paramèt yo, i.e array
e closure
. Anndan an closure
, nou kapab defikonnen konbyen route
nou vle. Nan kòd ki anwo a, nou genyen defifini twa route
.
Si nou jwenn aksè nan URL la atravè navigatè localhost/myproject/first
Lè sa a, premye a entèvni route
ekri nan navigatè a first way route
.
Avèk URL la localhost/myproject/second
Lè sa a, dezyèm lan entèvni route
ekri nan navigatè a second way route
.
Pandan ke ak URL la localhost/myproject/third
Lè sa a, twazyèm pati a entèvni route
ekri nan navigatè a third way route
.
Route Groups
Prefiks yo nan route
yo itilize lè nou vle bay yon estrikti URL komen nan plizyè route
.
Nou ka presize prefiks pou tout wout definited nan gwoup la lè l sèvi avèk opsyon nan etalaj prefiks nan Route Groups
.
Egzanp 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";
});
});
Kòd la gen twa chemen ki ka jwenn aksè nan URL sa yo:
/movie/godfather ---> Godfather casting
/movie/pulpfiction ---> Pulp Fiction casting
/movie/forrestgump ---> Forrest Gump casting
Nou kapab tou bay middleware nan tout wout nan yon gwoup. Middleware a dwe defifini anvan ou kreye gwoup la. Pou wè ki jan fè li, li atik nou an Laravel middleware ki jan li fonksyone.
egzanp:
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";
});
});
Metòd la name
yo itilize prefiks chak non nan route
ak yon fisèl espesifye. Nan metòd la name
, nou bezwen presize fisèl la ak yon karaktè final nan prefiks la.
egzanp web.php
Route::name('movie.')->group(function()
{
Route::get('users', function()
{
return "movie.films";
})->name('films');
});
Ercole Palmeri
Coveware by Veeam ap kontinye bay sèvis repons pou ensidan ekstòsyon sou cyber. Coveware pral ofri medsen legal ak kapasite ratrapaj ...
Antretyen prediksyon ap revolisyone sektè lwil oliv ak gaz la, ak yon apwòch inovatè ak aktif nan jesyon plant yo.…
UK CMA te bay yon avètisman sou konpòtman Big Tech nan mache entèlijans atifisyèl la. La…
Dekrè "Case Green", ki te fòme pa Inyon Ewopeyen an pou amelyore efikasite enèji nan bilding yo, te konkli pwosesis lejislatif li yo ak...