บทความ

Laravel: ข้อมูลเบื้องต้นเกี่ยวกับการกำหนดเส้นทาง laravel

การกำหนดเส้นทางใน 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 คืออะไร?

เส้นทาง Laravel ทั้งหมดคือ defiนิติในไฟล์พาธที่อยู่ในไดเร็กทอรี 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 ทั้งหมดคือ defiนิติในตัวคุณ routingซึ่งอยู่ภายในไดเร็กทอรีเดอิ routes. เพราะเหตุนี้, l'AppProvidersRouteServiceProvider ของแอปพลิเคชันขึ้นบรรทัดบันทึกเหล่านี้ ไฟล์ route/web.php มีเส้นทางที่จัดการสำหรับเว็บอินเตอร์เฟสของคุณ

โครงสร้างเส้นทางนั้นง่ายมาก เปิดไฟล์ที่เหมาะสม (`web.phpo `api.php) และเริ่มบรรทัดของรหัสด้วย `Route:: `ตามด้วยคำขอที่คุณต้องการกำหนดให้กับเส้นทางนั้น จากนั้นระบุฟังก์ชันที่จะดำเนินการตามคำขอ

Laravel นำเสนอเมธอดพาธต่อไปนี้:

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

เส้นทางต่างๆได้แก่ definited ใน 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` บนตัวอย่างเส้นทาง `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 คุณสามารถทำได้ defiเสร็จสิ้นวิธีการควบคุมสำหรับเส้นทาง วิธีการควบคุมจะดำเนินการทั้งหมด 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 ใน เว็บ.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ภายในกลุ่มโดยใช้ตัวเลือกอาร์เรย์คำนำหน้า 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

จดหมายข่าวนวัตกรรม
อย่าพลาดข่าวสารที่สำคัญที่สุดเกี่ยวกับนวัตกรรม ลงทะเบียนเพื่อรับพวกเขาทางอีเมล

บทความล่าสุด

การชำระเงินออนไลน์: นี่คือวิธีที่บริการสตรีมมิ่งทำให้คุณชำระเงินตลอดไป

ผู้คนนับล้านชำระค่าบริการสตรีมมิ่ง โดยจ่ายค่าธรรมเนียมการสมัครสมาชิกรายเดือน เป็นความเห็นทั่วไปที่คุณ...

29 2024 เมษายน

Veeam มีการสนับสนุนแรนซัมแวร์ที่ครอบคลุมที่สุด ตั้งแต่การป้องกันไปจนถึงการตอบสนองและการกู้คืน

Coveware by Veeam จะยังคงให้บริการตอบสนองต่อเหตุการณ์การขู่กรรโชกทางไซเบอร์ต่อไป Coveware จะนำเสนอความสามารถในการนิติเวชและการแก้ไข...

23 2024 เมษายน

การปฏิวัติสีเขียวและดิจิทัล: การบำรุงรักษาเชิงคาดการณ์กำลังเปลี่ยนแปลงอุตสาหกรรมน้ำมันและก๊าซอย่างไร

การบำรุงรักษาเชิงคาดการณ์กำลังปฏิวัติภาคส่วนน้ำมันและก๊าซ ด้วยแนวทางเชิงรุกและนวัตกรรมในการจัดการโรงงาน...

22 2024 เมษายน

หน่วยงานกำกับดูแลการต่อต้านการผูกขาดของสหราชอาณาจักรส่งสัญญาณเตือน BigTech เกี่ยวกับ GenAI

UK CMA ได้ออกคำเตือนเกี่ยวกับพฤติกรรมของ Big Tech ในตลาดปัญญาประดิษฐ์ ที่นั่น…

18 2024 เมษายน

อ่านนวัตกรรมในภาษาของคุณ

จดหมายข่าวนวัตกรรม
อย่าพลาดข่าวสารที่สำคัญที่สุดเกี่ยวกับนวัตกรรม ลงทะเบียนเพื่อรับพวกเขาทางอีเมล

ติดตามเรา