Мақолаҳо

Ларавел: муқаддима ба масиргузории laravel

Роутинг дар Laravel ба корбарон имкон медиҳад, ки ҳама дархостҳои барномаро ба контролери мувофиқ равона кунанд. Аксари хатсайрҳои ибтидоӣ дар Ларавел идентификатори ягонаи дороиҳоро дар баробари басташавӣ эътироф ва қабул мекунанд, ки роҳи содда ва ифодакунандаи масирро таъмин мекунанд.

Роҳ (маршрут) чист?

Роҳ як роҳи эҷоди 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');
});

Роҳ дар Ларавел чист?

Ҳама роҳҳои Ларавел ҳастанд 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 хамчун купруки байни дархост ва реакция амал мекунад. Он метавонад як навъ ҷузъи филтр бошад.

Ларел кор бо а миёнаравӣ ки вазифаи тасдик кардани аризаи муштариро дорад ё не. Дар сурати тасдиқи муштарӣ, масир ба саҳифаи асосӣ ё саҳифаи воридшавӣ равона карда мешавад.

Усулҳо барои route

Рамзи қаблӣ defiроҳро ба саҳифаи хонагӣ нишон медиҳад. Ҳар вақте, ки ин масир дархост мегирад get дар як /, бармегардонад view welcome

Ҳама роҳҳои Ларавел ҳастанд defiнити дар шумо routing, ки дар дохили директорияи dei чойгиранд routes. Дар натиҷа, l'AppProvidersRouteServiceProvider аз ариза сатрҳои ин сабтҳо. Файл route/web.php дорои масирҳое мебошад, ки барои интерфейси веби шумо идора карда мешаванд.

Сохтори роҳ хеле содда аст. Файли мувофиқро кушоед (`web.phpo `api.php) ва сатри кодро бо `Route:: `, пас аз дархосте, ки шумо мехоҳед ба он масири мушаххас таъин кунед ва он гоҳ функсияеро, ки пас аз дархост иҷро мешавад, муайян кунед.

Laravel усулҳои зерини роҳро пешниҳод мекунад:

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

Роҳҳо ҳастанд definited дар Laravel дар доираи синфи Route бо HTTP, масири ҷавоб ба ва пӯшидани, ё контроллер.

Чӣ тавр дар Ларавел роҳҳо эҷод кардан мумкин аст

Биёед бубинем, ки чӣ тавр шумо метавонед роҳҳои худро дар Ларавел созед.

Роҳи асосии 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' истехсол карда мешавад.

Ифодаҳои муқаррарӣ ҳамчун маҳдудият барои параметрҳои масир

Дар мисоли қаблӣ мо роҳеро барои тавлиди ҷадвали зарб эҷод кардем, аммо чӣ гуна метавонем боварӣ ҳосил кунем, ки параметри роҳ воқеан рақам аст, то ҳангоми тавлиди ҷадвали зарб хато накунад?

Дар Ларавел шумо метавонед defiМаҳдудият дар параметри масир бо истифода аз усули `where` дар мисоли масир. Дар `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 бо функсияи назорат

Дар Ларавел шумо метавонед defiусули Назоратчӣ барои роҳ. Усули контроллер ҳама амалҳоро иҷро мекунад defiҳар дафъае, ки корбар ба масир дастрасӣ пайдо мекунад.
Бо рамзи зерин мо усули контроллерро таъин мекунем 'functionname' ба масир:

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

Рамз аз он оғоз мешавад `Route::` ва аз ин рӯ defiусули дархостро барои роҳ нишон медиҳад. Баъдан, defiРоҳ ва контроллератонро дар баробари усул бо илова кардани аломати @ пеш аз номи усул ба итмом расонед.

Ба роҳ ном диҳед

Дар Ларавел шумо метавонед defiбарои роҳи худ ном гузоред. Ин ном аксар вақт хеле муфид аст. Масалан, агар шумо хоҳед, ки корбарро аз як макон ба ҷои дигар равона кунед, ба шумо лозим нест defiURL-и пурраи масир. Шумо метавонед танҳо номи ӯро диҳед. Ту метавонӣ 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 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" ;   
   });  
});  

Дар код, 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

Миёна

Мо инчунин метавонем миёнаравро ба ҳамаи хатсайрҳо дар дохили гурӯҳ таъин кунем. Миёнаравӣ бояд бошад defiпеш аз таъсиси гурӯҳ анҷом ёфт. Барои дидани он, ки чӣ тавр ин корро кардан мумкин аст, мақолаи моро хонед Миёнаравӣ Laravel чӣ тавр кор мекунад.

Намуна:

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

Намунаҳои макросҳои Excel, ки бо VBA навишта шудаанд

Намунаҳои зерини макросҳои оддии Excel бо истифода аз вақти хондани тахминии VBA навишта шудаанд: 3 дақиқа Мисол…

25 Марзо 2024

Инноватсияро ба забони худ хонед

Бюллетени инноватсионӣ
Муҳимтарин хабарҳоро дар бораи навоварӣ аз даст надиҳед. Барои гирифтани онҳо тавассути почтаи электронӣ обуна шавед.

Моро дунбол кунед