ເສັ້ນທາງແມ່ນວິທີການສ້າງ URL ການຮ້ອງຂໍສໍາລັບຄໍາຮ້ອງສະຫມັກຂອງທ່ານ. URL ເຫຼົ່ານີ້ບໍ່ຈໍາເປັນຕ້ອງກ່ຽວຂ້ອງກັບໄຟລ໌ສະເພາະຢູ່ໃນເວັບໄຊທ໌ແລະສາມາດອ່ານໄດ້ແລະ SEO-optimized.
ໃນ Laravel, ເສັ້ນທາງຖືກສ້າງຂື້ນພາຍໃນໂຟນເດີໄຟລ໌ routes
. ພວກມັນຖືກສ້າງຂື້ນໃນໄຟລ໌ web.php
ສໍາລັບເວັບໄຊທ໌, ແລະພາຍໃນ api.php
ສໍາລັບ APIs.
ເຫຼົ່ານີ້ route
ໄດ້ຖືກມອບຫມາຍໃຫ້ກຸ່ມ middleware
ເຄືອຂ່າຍ, ເນັ້ນໃຫ້ເຫັນລັດແລະຄວາມປອດໄພກອງປະຊຸມ CSRF
. ເສັ້ນທາງໃນ route/api.php
ພວກມັນບໍ່ມີລັດ ແລະຖືກມອບໝາຍໃຫ້ກຸ່ມ API Middleware.
ການຕິດຕັ້ງກ່ອນdefiLaravel nita ມາພ້ອມກັບສອງເສັ້ນທາງ, ຫນຶ່ງສໍາລັບເວັບແລະອີກອັນຫນຶ່ງສໍາລັບ API. ນີ້ແມ່ນສິ່ງທີ່ເສັ້ນທາງໄປສູ່ເວັບໃນລັກສະນະ web.php
:
Route::get('/', function () {
return view('welcome');
});
ເສັ້ນທາງ Laravel ທັງຫມົດແມ່ນ definited ໃນໄຟລ໌ເສັ້ນທາງທີ່ພົບເຫັນຢູ່ໃນໄດເລກະທໍລີ routes
. ຄໍາຮ້ອງສະຫມັກການຄຸ້ມຄອງເສັ້ນທາງ, definited ໃນໄຟລ໌ App\Providers\RouteServiceProvider
, ເບິ່ງແຍງອັດຕະໂນມັດ line up ໄຟລ໌ເຫຼົ່ານີ້. ໄຟລ໌ route/web.php
definishes ເສັ້ນທາງສໍາລັບການໂຕ້ຕອບເວັບໄຊຕ໌ຂອງທ່ານ.
ມັນເປັນໄປໄດ້ definish ເສັ້ນທາງສໍາລັບການປະຕິບັດຕົວຄວບຄຸມນີ້ດັ່ງຕໍ່ໄປນີ້:
Route::get(‘user/{id}’, ‘UserController@show’);
Route::resource
: ວິທີການ Route::resource
ຜະລິດເສັ້ນທາງພື້ນຖານທັງຫມົດທີ່ຕ້ອງການສໍາລັບຄໍາຮ້ອງສະຫມັກແລະຖືກຄຸ້ມຄອງຜ່ານຊັ້ນຄວບຄຸມ.
ເມື່ອຄໍາຮ້ອງຂໍກົງກັບ URI ເສັ້ນທາງທີ່ລະບຸ, ວິທີການແມ່ນເອີ້ນວ່າ show
definited ໃນຕົວຄວບຄຸມ App\Http\ControllersUserController
, ການຖ່າຍທອດພາລາມິເຕີເສັ້ນທາງໄປຫາວິທີການ.
ສໍາລັບຊັບພະຍາກອນ, ທ່ານຈໍາເປັນຕ້ອງເຮັດສອງຢ່າງໃນແອັບພລິເຄຊັນ Laravel. ກ່ອນອື່ນ ໝົດ, ທ່ານ ຈຳ ເປັນຕ້ອງສ້າງເສັ້ນທາງຊັບພະຍາກອນ Laravel ທີ່ສະຫນອງການແຊກ, ປັບປຸງ, ເບິ່ງແລະລຶບເສັ້ນທາງ. ອັນທີສອງ, ສ້າງຕົວຄວບຄຸມຊັບພະຍາກອນທີ່ສະຫນອງວິທີການໃສ່, ປັບປຸງ, ເບິ່ງ, ແລະລຶບ.
ການຕິດຕັ້ງກ່ອນdefiLaravel nita ມາພ້ອມກັບສອງເສັ້ນທາງ: ຫນຶ່ງສໍາລັບເວັບແລະອີກອັນຫນຶ່ງສໍາລັບ API. ນີ້ແມ່ນສິ່ງທີ່ເສັ້ນທາງເວັບໄຊຕ໌ເບິ່ງຄືວ່າຢູ່ໃນ web.php:
Route::get(‘/’, function () {
return view(‘welcome’);
});
Laravel Middleware ເຮັດຫນ້າທີ່ເປັນຂົວລະຫວ່າງຄໍາຮ້ອງຂໍແລະການຕິກິຣິຍາ. ມັນສາມາດເປັນປະເພດຂອງອົງປະກອບການກັ່ນຕອງ.
Laravel ເຮັດວຽກກັບ a ເຄື່ອງປະດັບກາງ ເຊິ່ງມີໜ້າທີ່ຢັ້ງຢືນວ່າແອັບພລິເຄຊັນລູກຄ້າຖືກກວດສອບຫຼືບໍ່. ໃນກໍລະນີທີ່ລູກຄ້າໄດ້ຮັບການຢືນຢັນ, ຫຼັງຈາກນັ້ນເສັ້ນທາງຈະປ່ຽນເສັ້ນທາງໄປຫາຫນ້າທໍາອິດຫຼືຫນ້າເຂົ້າສູ່ລະບົບ.
route
ລະຫັດທີ່ຜ່ານມາ defiເສັ້ນທາງໄປຫາຫນ້າທໍາອິດປາກົດ. ທຸກຄັ້ງທີ່ເສັ້ນທາງນີ້ໄດ້ຮັບການຮ້ອງຂໍ get
ຕໍ່ /
, ຈະກັບຄືນມາ view
welcome
.
ເສັ້ນທາງ Laravel ທັງຫມົດແມ່ນ defiຕິດຢູ່ໃນໄຟລ໌ຂອງທ່ານ routing
, ເຊິ່ງຕັ້ງຢູ່ພາຍໃນໄດເລກະທໍລີ dei routes
. ດັ່ງນັ້ນ, l'AppProvidersRouteServiceProvider
ຂອງຄໍາຮ້ອງສະຫມັກເສັ້ນບັນທຶກເຫຼົ່ານີ້. ໄຟລ໌ route/web.php
ປະກອບມີເສັ້ນທາງທີ່ຖືກຈັດການສໍາລັບການໂຕ້ຕອບເວັບຂອງທ່ານ.
ໂຄງສ້າງຂອງເສັ້ນທາງແມ່ນງ່າຍດາຍຫຼາຍ. ເປີດໄຟລ໌ທີ່ເຫມາະສົມ (`web.php
` o `api.php
` ) ແລະເລີ່ມຕົ້ນເສັ້ນລະຫັດດ້ວຍ `Route:: `
, ຕາມດ້ວຍຄໍາຮ້ອງຂໍທີ່ທ່ານຕ້ອງການທີ່ຈະມອບຫມາຍໃຫ້ເສັ້ນທາງສະເພາະນັ້ນແລະຫຼັງຈາກນັ້ນໃຫ້ລະບຸຫນ້າທີ່ທີ່ຈະປະຕິບັດປະຕິບັດຕາມຄໍາຮ້ອງຂໍ.
Laravel ສະເຫນີວິທີການເສັ້ນທາງດັ່ງຕໍ່ໄປນີ້:
get
post
put
delete
patch
options
ເສັ້ນທາງແມ່ນ definited ໃນ Laravel ພາຍໃນຫ້ອງຮຽນເສັ້ນທາງກັບ HTTP, ເສັ້ນທາງທີ່ຈະຕອບສະຫນອງແລະການປິດ, ຫຼືຕົວຄວບຄຸມ.
ມາເບິ່ງວິທີທີ່ເຈົ້າສາມາດສ້າງເສັ້ນທາງຂອງເຈົ້າເອງໃນ Laravel.
ຕອນນີ້ຂ້ອຍຈະສ້າງເສັ້ນທາງພື້ນຖານທີ່ຈະພິມຕາຕະລາງ 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
' ລະຫວ່າງວົງເລັບ curly ເປັນຕົວແທນຂອງພາລາມິເຕີ, i.e. ຕົວເລກທີ່ຕາຕະລາງຄູນຈະຖືກຄິດໄລ່. ເມື່ອໃດກໍ່ຕາມ 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 ໂດຍການຕັ້ງຄ່າກ່ອນdefinita ແລະຖ້າຜູ້ໃຊ້ເສັ້ນທາງໄປຫາ `/table/{number}
ດັ່ງນັ້ນຈຶ່ງເປັນຕາຕະລາງຕົວເລກ 'number'
ຈະຖືກຜະລິດ.
ໃນຕົວຢ່າງທີ່ຜ່ານມາພວກເຮົາໄດ້ສ້າງເສັ້ນທາງສໍາລັບການສ້າງຕາຕະລາງຄູນ, ແຕ່ເຮັດແນວໃດພວກເຮົາສາມາດຮັບປະກັນວ່າຕົວກໍານົດການເສັ້ນທາງແມ່ນຕົວຈິງເປັນຕົວເລກ, ເພື່ອຫຼີກເວັ້ນຄວາມຜິດພາດໃນລະຫວ່າງການສ້າງຕາຕະລາງຄູນ?
ໃນ Laravel, ທ່ານສາມາດເຮັດໄດ້ definish ຂໍ້ ຈຳ ກັດກ່ຽວກັບພາລາມິເຕີເສັ້ນທາງໂດຍໃຊ້ວິທີການ `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]+' ) ;
ໃນລະຫັດຂ້າງເທິງ, ພວກເຮົາໄດ້ໃຊ້ການສະແດງອອກປົກກະຕິສໍາລັບຕົວເລກເສັ້ນທາງ. ໃນປັດຈຸບັນ, ຖ້າຜູ້ໃຊ້ພະຍາຍາມເສັ້ນທາງໄປຫາ /table/ບໍ່ , ຈະຖືກສະແດງ ຂໍ້ຍົກເວັ້ນ NotFoundHttpException.
ໃນ Laravel, ທ່ານສາມາດເຮັດໄດ້ definish ວິທີການຄວບຄຸມສໍາລັບເສັ້ນທາງ. ວິທີການຄວບຄຸມປະຕິບັດການດໍາເນີນການທັງຫມົດ definite ທຸກໆຄັ້ງທີ່ຜູ້ໃຊ້ເຂົ້າເຖິງເສັ້ນທາງ.
ດ້ວຍລະຫັດຕໍ່ໄປນີ້ພວກເຮົາກໍາລັງກໍານົດວິທີການຄວບຄຸມ 'functionname'
ໄປຫາເສັ້ນທາງ:
Route:: get ( '/home' , 'YourController@functionname' ) ;
ລະຫັດເລີ່ມຕົ້ນດ້ວຍ `Route::`
ແລະເພາະສະນັ້ນ defiວິທີການຮ້ອງຂໍສໍາລັບເສັ້ນທາງສິ້ນສຸດລົງ. ຕໍ່ມາ, definish ເສັ້ນທາງແລະຕົວຄວບຄຸມຂອງທ່ານພ້ອມກັບວິທີການໂດຍການເພີ່ມສັນຍາລັກ @ ກ່ອນຊື່ວິທີການ.
ໃນ Laravel, ທ່ານສາມາດເຮັດໄດ້ defiມາກັບຊື່ສໍາລັບເສັ້ນທາງຂອງທ່ານ. ຊື່ນີ້ມັກຈະເປັນປະໂຫຍດຫຼາຍ. ຕົວຢ່າງ: ຖ້າທ່ານຕ້ອງການປ່ຽນເສັ້ນທາງຜູ້ໃຊ້ຈາກສະຖານທີ່ຫນຶ່ງໄປຫາບ່ອນອື່ນ, ທ່ານບໍ່ຈໍາເປັນຕ້ອງ defiສໍາເລັດການປ່ຽນເສັ້ນທາງ URL ເຕັມ. ທ່ານພຽງແຕ່ສາມາດໃຫ້ຊື່ຂອງມັນ. ເຈົ້າສາມາດ definise ຊື່ເສັ້ນທາງໂດຍໃຊ້ວິທີການ `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 ນີ້, syntax ທີ່ຖືກຕ້ອງຈະເປັນ:
return redirect()->route('table');
Route Groups
I Route Groups
, ກຸ່ມເສັ້ນທາງທີ່ຮູ້ຫນັງສື, ເປັນລັກສະນະທີ່ສໍາຄັນໃນ Laravel, ເຊິ່ງຊ່ວຍໃຫ້ທ່ານສາມາດຈັດກຸ່ມເສັ້ນທາງ. ກຸ່ມເສັ້ນທາງມີປະໂຫຍດເມື່ອທ່ານຕ້ອງການນຳໃຊ້ຄຸນລັກສະນະຕ່າງໆໃຫ້ກັບທຸກເສັ້ນທາງທີ່ຖືກຈັດເປັນກຸ່ມ. ຖ້າທ່ານໃຊ້ກຸ່ມເສັ້ນທາງ, ທ່ານບໍ່ຈໍາເປັນຕ້ອງໃຊ້ຄຸນລັກສະນະສ່ວນບຸກຄົນໃນແຕ່ລະເສັ້ນທາງ; ນີ້ຫຼີກເວັ້ນການຊໍ້າຊ້ອນ. ມັນອະນຸຍາດໃຫ້ທ່ານສາມາດແບ່ງປັນຄຸນລັກສະນະເຊັ່ນ middleware
o namespaces
, ໂດຍບໍ່ມີການ defiແນມເບິ່ງຄຸນລັກສະນະເຫຼົ່ານີ້ຢູ່ໃນທຸກເສັ້ນທາງດຽວ. ຄຸນລັກສະນະທີ່ແບ່ງປັນເຫຼົ່ານີ້ສາມາດຖືກສົ່ງຜ່ານໃນຮູບແບບ array ເປັນພາລາມິເຕີທໍາອິດໄປຫາວິທີການ Route::group
.
Syntax ຂອງກຸ່ມເສັ້ນທາງ
Route::group([], callback);
ນົກເຂົາ []: ແມ່ນ array ທີ່ຖືກສົ່ງໄປຫາວິທີການກຸ່ມເປັນພາລາມິເຕີທໍາອິດ.
ຕົວຢ່າງຂອງ 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ໃຫ້ເລີ່ມຕົ້ນວິທີການ ກຸ່ມ(), ເຊິ່ງປະກອບດ້ວຍສອງຕົວກໍານົດການ, i.e array
e closure
. ພາຍໃນ closure
, ພວກເຮົາສາມາດ defiຮູ້ວ່າຈໍານວນເທົ່າໃດ route
ພວກເຮົາຕ້ອງການ. ໃນລະຫັດຂ້າງເທິງ, ພວກເຮົາມີ defiສໍາເລັດຮູບສາມ route
.
ຖ້າພວກເຮົາເຂົ້າເຖິງ URL ຜ່ານຕົວທ່ອງເວັບ localhost/myproject/first
ຫຼັງຈາກນັ້ນ, ຄົນທໍາອິດແຊກແຊງ route
ຂຽນໃນ browser first way route
.
ດ້ວຍ URL localhost/myproject/second
ຫຼັງຈາກນັ້ນ, ອັນທີສອງແຊກແຊງ route
ຂຽນໃນ browser second way route
.
ໃນຂະນະທີ່ມີ URL localhost/myproject/third
ຫຼັງຈາກນັ້ນ, ພາກສ່ວນທີສາມແຊກແຊງ route
ຂຽນໃນ browser third way route
.
Route Groups
ຄໍານໍາຫນ້າຂອງ route
ພວກມັນຖືກນໍາໃຊ້ໃນເວລາທີ່ພວກເຮົາຕ້ອງການສະຫນອງໂຄງສ້າງ URL ທົ່ວໄປໃຫ້ກັບຫຼາຍໆຄົນ route
.
ພວກເຮົາສາມາດລະບຸຄໍານໍາຫນ້າສໍາລັບເສັ້ນທາງທັງຫມົດ definited ພາຍໃນກຸ່ມໂດຍໃຊ້ຕົວເລືອກ array prefix in 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 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
Coveware ໂດຍ Veeam ຈະສືບຕໍ່ໃຫ້ບໍລິການຕອບໂຕ້ເຫດການ extortion cyber. Coveware ຈະສະ ເໜີ ຄວາມສາມາດດ້ານນິຕິສາດແລະການແກ້ໄຂ…
ການຮັກສາການຄາດເດົາແມ່ນການປະຕິວັດຂະແໜງນ້ຳມັນ ແລະ ອາຍແກັສ, ດ້ວຍແນວທາງນະວັດຕະກໍາ ແລະ ຕັ້ງໜ້າໃນການຄຸ້ມຄອງພືດ.…
CMA ຂອງອັງກິດໄດ້ອອກຄໍາເຕືອນກ່ຽວກັບພຶດຕິກໍາຂອງ Big Tech ໃນຕະຫຼາດປັນຍາປະດິດ. ຢູ່ທີ່ນັ້ນ…
ດຳລັດ “Case Green” ທີ່ສ້າງຂຶ້ນໂດຍສະຫະພາບເອີລົບ ເພື່ອຍົກສູງປະສິດທິພາບດ້ານພະລັງງານຂອງຕຶກອາຄານ, ໄດ້ສິ້ນສຸດຂະບວນການນິຕິບັນຍັດຂອງຕົນດ້ວຍ…