Հոդվածներ

Laravel. ներածություն laravel երթուղի

Routing-ը Laravel-ում թույլ է տալիս օգտվողներին ուղղորդել հավելվածի բոլոր հարցումները դեպի համապատասխան վերահսկիչ: Laravel-ի հիմնական երթուղիների մեծ մասը ճանաչում և ընդունում է Uniform Asset Identifier-ը փակման հետ մեկտեղ՝ ապահովելով երթուղման պարզ և արտահայտիչ եղանակ:

Ի՞նչ է երթուղին (երթուղին):

Ճանապարհը ձեր դիմումի համար հարցման URL ստեղծելու միջոց է: Այս URL-ները պետք չէ կապված լինել վեբկայքի հատուկ ֆայլերի հետ և ընթեռնելի են մարդու համար և հարմար են SEO-ին:

Laravel-ում ուղիները ստեղծվում են le թղթապանակի ներսում routes. Դրանք ստեղծվում են ֆայլում web.php կայքերի համար և ներսում api.php API-ների համար:

Սրանք route նշանակվում են խմբին middleware ցանց՝ ընդգծելով նստաշրջանի կարգավիճակը և անվտանգությունը CSRF. Երթուղիները ներս route/api.php նրանք քաղաքացիություն չունեցող են և նշանակված են API-ի միջին ծրագրային խմբին:
Նախնական տեղադրումdefiLaravel nita-ն ունի երկու ուղի, մեկը վեբի համար, իսկ մեկը՝ API-ի համար: Ահա թե ինչ տեսք ունի վեբ մուտքի ուղին web.php:

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

Ինչ է երթուղին Լարավելում:

Laravel-ի բոլոր ուղիներն են definiti գրացուցակում գտնվող ուղու ֆայլերում routes. Երթուղու կառավարման հավելված, defiնշված է ֆայլում App\Providers\RouteServiceProvider, հոգ է տանում այս ֆայլերի ավտոմատ շարման մասին: Ֆայլը route/web.php defiսահմանում է ձեր վեբ ինտերֆեյսի ուղիները:

È հնարավոր է defiնշեք այս վերահսկիչի գործողության ուղին հետևյալ կերպ.

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

Route::resource: մեթոդը Route::resource արտադրում է հավելվածի համար պահանջվող բոլոր հիմնական ուղիները և կառավարվում է վերահսկիչի դասի միջոցով:

Երբ հարցումը համապատասխանում է նշված երթուղու URI-ին, մեթոդը կանչվում է show defiավարտված է վերահսկիչում App\Http\ControllersUserController, փոխանցելով երթուղու պարամետրերը մեթոդին:

Ռեսուրսների համար դուք պետք է երկու բան անեք հավելվածում Լարավել. Նախ, դուք պետք է ստեղծեք ռեսուրսների ուղին Լարավել որը ապահովում է զետեղել, թարմացնել, դիտել և ջնջել ուղիները: Երկրորդ, ստեղծեք ռեսուրսների վերահսկիչ, որն ապահովում է տեղադրման, թարմացման, դիտման և ջնջման մեթոդ:

Նախնական տեղադրումdefiLaravel nita-ն ունի երկու ուղի` մեկը վեբի և մեկը API-ի համար: Ահա թե ինչ տեսք ունի դեպի վեբ երթուղին web.php-ում.

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

return view(‘welcome’);

});

Laravel Middleware հանդես է գալիս որպես կամուրջ խնդրանքի և արձագանքի միջև: Դա կարող է լինել ինչ-որ ֆիլտրի բաղադրիչ:

Լարավել աշխատել ա միջնակարգ որն ունի խնդիր՝ հաստատելու՝ արդյոք հաճախորդի հայտը ստուգված է, թե ոչ։ Այն դեպքում, երբ հաճախորդը հաստատված է, ապա երթուղիչը վերահղվում է դեպի գլխավոր էջ կամ մուտքի էջ:

Մեթոդները համար route

Նախորդ կոդը defiճանապարհ է բացում դեպի գլխավոր էջ: Ամեն անգամ, երբ այս ուղին հարցում է ստանում get յուրաքանչյուր /, կվերադարձնի view welcome

Laravel-ի բոլոր ուղիներն են definiti քո routing, որոնք գտնվում են dei գրացուցակի ներսում routes. հետևաբար, l'AppProvidersRouteServiceProvider հայտը գծում է այս գրառումները: Ֆայլը route/web.php պարունակում է երթուղիներ, որոնք կառավարվում են ձեր վեբ ինտերֆեյսի համար:

Ճանապարհի կառուցվածքը շատ պարզ է. Բացեք համապատասխան ֆայլը (`web.phpo `api.php) և սկսել կոդի գիծը `Route:: `, որին հաջորդում է հարցումը, որը ցանկանում եք վերագրել այդ կոնկրետ երթուղուն և այնուհետև նշեք այն գործառույթը, որը կկատարվի հարցումից հետո:

Laravel-ն առաջարկում է հետևյալ ուղիների մեթոդները.

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

Ճանապարհներն են defiնշված է Laravel-ում Route դասի շրջանակներում HTTP-ով, պատասխանելու և փակելու երթուղին կամ կարգավորիչը:

Ինչպես ստեղծել ուղիներ Laravel-ում

Տեսնենք, թե ինչպես կարող եք ստեղծել ձեր սեփական ուղիները Laravel-ում:

Հիմնական GET ուղի

Այժմ ես պատրաստվում եմ ստեղծել հիմնական ուղի, որը կտպագրի 2-ի ժամանակների աղյուսակը:

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

Վերոնշյալ կոդում ես ստեղծել եմ GET հարցման ուղի URL-ի համար /table, որը էկրանին կտպագրի 2-ի ժամանակների աղյուսակը:

Հիմա եկեք տեսնենք նույն կոդը՝ պարամետրացնելով այն թիվը, որի համար մենք ցանկանում ենք բազմապատկման աղյուսակը.

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

Կոդում «numberփակագծերի միջև ընկած հատվածը ներկայացնում է պարամետրը, այսինքն՝ այն թիվը, որի համար կհաշվարկվի բազմապատկման աղյուսակը: Ամեն անգամ, երբ նշված է տիպի URL /table/n, ապա թվերի աղյուսակը կտպվի n.

Գոյություն ունի նաև երկու հատկանիշները մեկ ճանապարհով համատեղելու միջոց: Laravel-ն առաջարկում է կամընտիր պարամետրերի հնարավորությունը, որը թույլ է տալիս ավելացնել կամընտիր պարամետրեր՝ օգտագործելով «?» հարցական նշանը: կամընտիր պարամետրից և նախնական արժեքից հետոdefiգիշերը. Տեսնենք օրինակը.

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

Վերևի կոդում մենք ստեղծեցինք մեր երթուղու պարամետրը՝ դարձնելով համարը ընտրովի, այնպես որ, եթե օգտատերը երթուղում է `/table` այնուհետև այն կստեղծի 2-ի աղյուսակը լռելյայնdefinite-ը և եթե օգտվողը ուղղորդում է դեպի «/table/{number}Այնուհետև թվերի աղյուսակը 'number' կարտադրվի։

Կանոնավոր արտահայտությունները որպես երթուղու պարամետրերի սահմանափակում

Նախորդ օրինակում մենք ստեղծել ենք բազմապատկման աղյուսակի ստեղծման ուղի, բայց ինչպե՞ս կարող ենք ապահովել, որ ուղու պարամետրը իրականում թիվ է, որպեսզի խուսափենք բազմապատկման աղյուսակը ստեղծելիս սխալներից:

Laravel-ում դուք կարող եք defiսահմանել սահմանափակում երթուղու պարամետրի վրա՝ օգտագործելով ` մեթոդըwhere«երթուղու օրինակում. The «where` վերցնում է պարամետրի անունը և կանոնավոր արտահայտություն այդ պարամետրի համար:

Նորարարության տեղեկագիր
Բաց մի թողեք նորարարության մասին ամենակարևոր նորությունները: Գրանցվեք դրանք էլփոստով ստանալու համար:

Հիմա եկեք տեսնենք մեր « պարամետրի սահմանափակման օրինակը{numero}` համոզվելու համար, որ գործառույթին փոխանցվում է միայն թիվ:

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

Վերոնշյալ կոդում մենք օգտագործել ենք կանոնավոր արտահայտություն ուղու համարի համար: Այժմ, եթե օգտվողը փորձում է երթուղի անցնել դեպի /սեղան/թիվ կցուցադրվի NotFoundHttpException բացառություն:

Laravel Routing կառավարման գործառույթով

Laravel-ում դուք կարող եք definish a Controller մեթոդը երթուղու համար: Կարգավորիչ մեթոդը կատարում է բոլոր գործողությունները definite ամեն անգամ, երբ օգտվողը մուտք է գործում երթուղի:
Հետևյալ կոդով մենք վերագրում ենք վերահսկիչի մեթոդը 'functionname' դեպի երթուղի.

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

Կոդը սկսվում է `Route::` եւ, հետեւաբար defiնշում է ուղու հարցման մեթոդը: Հետագայում, defiԱվարտեք ձեր ուղին և վերահսկիչը մեթոդի հետ մեկտեղ՝ մեթոդի անունից առաջ ավելացնելով @ նշանը:

Անուն տվեք ճանապարհին

Laravel-ում դուք կարող եք defiանուն տվեք ձեր ճանապարհին: Այս անունը հաճախ շատ օգտակար է: Օրինակ, եթե ցանկանում եք օգտատիրոջը վերահղել մի վայրից մյուսը, պետք չէ defiնշեք ամբողջական վերահղման URL-ը: Դուք կարող եք պարզապես տալ նրա անունը: Դու կարող ես defiնշեք երթուղու անունը՝ օգտագործելով ` մեթոդըname«երթուղու օրինակում.

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

Այժմ ես կարող եմ վերականգնել այս ուղու url-ը հետևյալ կոդի միջոցով.

$url = route('table');

Նմանապես, այս URL-ին վերահղման համար ճիշտ շարահյուսությունը կլինի.

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

Route Groups

I Route Groups, բառացիորեն ուղու խմբերը, Laravel-ի էական հատկանիշն է, որը թույլ է տալիս խմբավորել ուղիները։ Ուղու խմբերն օգտակար են, երբ ցանկանում եք ատրիբուտներ կիրառել բոլոր խմբավորված ուղիների վրա: Եթե ​​դուք օգտագործում եք ուղիների խմբեր, դուք չպետք է կիրառեք ատրիբուտները առանձին-առանձին յուրաքանչյուր ուղու վրա. սա խուսափում է կրկնությունից: Այն թույլ է տալիս կիսել այնպիսի հատկանիշներ, ինչպիսիք են middleware o namespaces, սենզա defiավարտել այս հատկանիշները յուրաքանչյուր առանձին ուղու վրա: Այս ընդհանուր հատկանիշները կարող են փոխանցվել զանգվածի ձևաչափով որպես մեթոդի առաջին պարամետր Route::group.

Երթուղիների խմբի շարահյուսություն

Route::group([], callback);  

աղավնի []: խմբային մեթոդին որպես առաջին պարամետր փոխանցված զանգված է։

Օրինակ Route Group մեջ 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" ;   
   });  
});  

Օրենսգրքում՝ defiեկեք գտնենք մեթոդը խումբ (), որը պարունակում է երկու պարամետր, այսինքն array e closure. Ներսում closure, մենք կարող ենք defiվերջացրեք քանիսը route ուզում ենք. Վերոնշյալ օրենսգրքում մենք ունենք defiավարտեց երեքը route.

Եթե ​​բրաուզերի միջոցով մենք մուտք գործենք URL localhost/myproject/first հետո առաջինը միջամտում է route մուտքագրում բրաուզերում first way route.

URL-ով localhost/myproject/second հետո գալիս է երկրորդը route մուտքագրում բրաուզերում second way route.

Մինչդեռ URL-ի հետ localhost/myproject/third հետո գալիս է երրորդը route մուտքագրում բրաուզերում third way route.

-ի նախածանցները Route Groups

-ի նախածանցները route դրանք օգտագործվում են, երբ մենք ցանկանում ենք տրամադրել URL-ի կառուցվածք, որը ընդհանուր է բազմակի համար route.

Մենք կարող ենք նախածանց նշել բոլոր ուղիների համար definites խմբի ներսում՝ օգտագործելով նախածանցային զանգվածի տարբերակը Route Groups.

Օրինակ 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";  
   });  
});  

Կոդը պարունակում է երեք ուղի, որոնց կարելի է մուտք գործել հետևյալ URL-ներից.

/movie/godfather  --->   Godfather casting

/movie/pulpfiction  --->   Pulp Fiction casting

/movie/forrestgump  --->   Forrest Gump casting

Middleware

Մենք կարող ենք նաև միջին ծրագրեր նշանակել խմբի ներսում գտնվող բոլոր երթուղիներին: Միջին ծրագիրը պետք է լինի defiավարտել է խումբը ստեղծելուց առաջ: Տեսնելու համար, թե ինչպես դա անել, կարդացեք մեր հոդվածը Ինչպես է այն աշխատում, Laravel Middleware-ը.

օրինակ.

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

Ուղու անվան նախածանցներ

Մեթոդը name օգտագործվում է յուրաքանչյուր անվան նախածանցի համար route նշված տողով: Մեթոդի մեջ name, նախածանցում պետք է նշենք վերջավոր նիշով տողը։

օրինակ web.php

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

Ercole Palmeri

Նորարարության տեղեկագիր
Բաց մի թողեք նորարարության մասին ամենակարևոր նորությունները: Գրանցվեք դրանք էլփոստով ստանալու համար:

Վերջին հոդվածները

Smart Lock Market. հրապարակվել է շուկայի հետազոտության զեկույց

Smart Lock Market տերմինը վերաբերում է արդյունաբերությանը և էկոհամակարգին, որը շրջապատում է արտադրությունը, բաշխումը և օգտագործումը…

27 Մարտ 2024

Որոնք են դիզայնի օրինաչափությունները. ինչու օգտագործել դրանք, դասակարգում, կողմ և դեմ

Ծրագրային ճարտարագիտության մեջ դիզայնի օրինաչափությունները օպտիմալ լուծումներ են այն խնդիրների համար, որոնք սովորաբար առաջանում են ծրագրային ապահովման նախագծման մեջ: ես նման եմ…

26 Մարտ 2024

Արդյունաբերական մակնշման տեխնոլոգիական էվոլյուցիան

Արդյունաբերական մակնշումը լայն տերմին է, որը ներառում է մի քանի տեխնիկա, որոնք օգտագործվում են մշտական ​​նշաններ ստեղծելու համար…

25 Մարտ 2024

VBA-ով գրված Excel մակրոների օրինակներ

Հետևյալ պարզ Excel մակրո օրինակները գրվել են VBA ընթերցման գնահատված ժամանակի միջոցով. 3 րոպե Օրինակ…

25 Մարտ 2024

Կարդացեք նորարարությունը ձեր լեզվով

Նորարարության տեղեկագիր
Բաց մի թողեք նորարարության մասին ամենակարևոր նորությունները: Գրանցվեք դրանք էլփոստով ստանալու համար:

Հետեւեք մեզ