Роҳ як роҳи эҷоди 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.php
` o `api.php
` ) ва сатри кодро бо `Route:: `
, пас аз дархосте, ки шумо мехоҳед ба он масири мушаххас таъин кунед ва он гоҳ функсияеро, ки пас аз дархост иҷро мешавад, муайян кунед.
Laravel усулҳои зерини роҳро пешниҳод мекунад:
get
post
put
delete
patch
options
Роҳҳо ҳастанд definited дар Laravel дар доираи синфи Route бо HTTP, масири ҷавоб ба ва пӯшидани, ё контроллер.
Биёед бубинем, ки чӣ тавр шумо метавонед роҳҳои худро дар Ларавел созед.
Ҳоло ман як роҳи асосӣ эҷод мекунам, ки ҷадвали вақтҳои 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.
Дар Ларавел шумо метавонед 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 ба саноат ва экосистема, ки дар атрофи истеҳсол, тақсим ва истифодаи…
Дар муҳандисии нармафзор, намунаҳои тарроҳӣ ҳалли оптималии мушкилоте мебошанд, ки одатан дар тарроҳии нармафзор рух медиҳанд. ман мисли…
Тамғагузории саноатӣ истилоҳи васеъест, ки якчанд усулҳоеро дар бар мегирад, ки барои эҷоди аломатҳои доимӣ дар сатҳи…
Намунаҳои зерини макросҳои оддии Excel бо истифода аз вақти хондани тахминии VBA навишта шудаанд: 3 дақиқа Мисол…