Жол қолданбаға сұрау 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
, әдіске маршрут параметрлерін беру.
Ресурстар үшін қолданбада екі әрекетті орындау керек Laravel. Алдымен ресурс жолын жасау керек Laravel кірістіру, жаңарту, көру және жою жолдарын қамтамасыз етеді. Екіншіден, кірістіру, жаңарту, қарау және жою әдісін қамтамасыз ететін ресурс контроллерін жасаңыз.
Алдын ала орнатуdefiLaravel nita екі жолмен келеді: біреуі веб үшін және екіншісі API үшін. Web.php файлында вебке бару жолы мынандай көрінеді:
Route::get(‘/’, function () {
return view(‘welcome’);
});
Laravel орта бағдарламасы сұраныс пен реакция арасындағы көпір қызметін атқарады. Бұл сүзгі құрамдас бөлігі болуы мүмкін.
Laravel а-мен жұмыс істеу орташа бағдарлама клиенттік қосымшаның тексерілгенін немесе тексерілмегенін растау міндеті бар. Клиент расталған жағдайда, маршруттау негізгі бетке немесе кіру бетіне қайта бағытталады.
route
Алдыңғы код defiбасты бетке апаратын жолды ашады. Бұл жол сұрауды алған сайын get
бір /
, қайтарады view
welcome
.
Барлық Laravel жолдары definiti сіздің routing
, олар dei каталогының ішінде орналасқан routes
. Демек, l'AppProvidersRouteServiceProvider
өтінімнің тізімі осы жазбаларды құрайды. Файл route/web.php
веб-интерфейсіңіз үшін басқарылатын маршруттарды қамтиды.
Жолдың құрылымы өте қарапайым. Сәйкес файлды ашыңыз (`web.php
` o `api.php
` ) және код жолын келесіден бастаңыз `Route:: `
, содан кейін сол нақты маршрутқа тағайындағыңыз келетін сұрауды басып, сұраудан кейін орындалатын функцияны көрсетіңіз.
Laravel келесі жол әдістерін ұсынады:
get
post
put
delete
patch
options
Жолдар defiLaravel-те HTTP бар Route класында, жауап беру және жабу маршруты немесе контроллер.
Ларавелде өз жолдарыңызды қалай жасауға болатынын көрейік.
Енді мен 2 уақыт кестесін басып шығаратын негізгі жолды жасаймын.
Route::get('/table', function () {
for($i =1; $i <= 10 ; $i++){
echo "$i * 2 = ". $i*2 ."<br>";
}
});
Жоғарыдағы кодта мен URL мекенжайы үшін GET сұрау жолын жасадым /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маршрут үшін Controller әдісін қолданыңыз. Контроллер әдісі барлық әрекеттерді орындайды defiпайдаланушы маршрутқа кірген сайын.
Келесі кодпен біз контроллер әдісін тағайындаймыз 'functionname'
маршрутқа:
Route:: get ( '/home' , 'YourController@functionname' ) ;
Код келесіден басталады `Route::`
және сондықтан defiжолға сұрау әдісін жасайды. Кейіннен, defiӘдіс атауының алдына @ белгісін қосу арқылы жолды және контроллерді әдіспен бірге аяқтаңыз.
Ларавелде сіз жасай аласыз 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
, сөзбе-сөз жол топтары, жолдарды топтастыруға мүмкіндік беретін Ларавелдің маңызды мүмкіндігі болып табылады. Жол топтары барлық топтастырылған жолдарға атрибуттарды қолданғыңыз келгенде пайдалы. Жол топтарын пайдалансаңыз, төлсипаттарды әрбір жолға жеке қолданудың қажеті жоқ; бұл қайталануды болдырмайды. сияқты атрибуттарды ортақ пайдалануға мүмкіндік береді 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
.
Біз барлық жолдар үшін префиксті көрсете аламыз defiішіндегі префикс массиві опциясын пайдаланып топ ішінде nites 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
Әскери-теңіз секторы 150 миллиардтық нарыққа бет алған нағыз жаһандық экономикалық держава болып табылады...
Өткен дүйсенбіде Financial Times OpenAI-мен келісім туралы жариялады. FT өзінің әлемдік деңгейдегі журналистикасына лицензия береді…
Миллиондаған адамдар ай сайынғы абоненттік төлемді төлей отырып, ағынды қызметтерге ақы төлейді. Жалпы пікір, сіз…
Veeam ұсынған Coveware кибербопсалау оқиғаларына жауап беру қызметтерін көрсетуді жалғастырады. Coveware криминалистикалық және қалпына келтіру мүмкіндіктерін ұсынады ...