การสร้าง Routing แบบมี Parameter ใน Laravel

การใช้งาน Laravel Routing Parameters

Laravel Routing Parameters เป็นส่วนสำคัญใน Laravel Framework ที่ช่วยให้เราสามารถจับคู่เส้นทาง (routes) กับ URL ในการสร้างเว็บแอปพลิเคชันได้อย่างมีประสิทธิภาพ

1. Required Parameters

การใช้ Required Parameters เหมาะสำหรับการรับพารามิเตอร์ที่จำเป็นจะต้องมีในเส้นทาง เช่น `/user/{id}` ที่ต้องการระบุ id ของผู้ใช้ สามารถใช้งานได้ดังนี้


Route::get('/user/{id}', function ($id) {
    return 'User ' . $id;
});

ตัวอย่างการใช้งาน:
– `/user/1` จะได้ `User 1`
– `/user/99` จะได้ `User 99`
– `/user/john` จะได้ `User john`

2. Optional Parameters

ในบางครั้งเราต้องการให้พารามิเตอร์เป็นออปชั่น (ไม่ต้องใส่ก็ได้) สามารถมีหรือไม่มีก็ได้ โดยสามารถกำหนดพารามิเตอร์ให้เป็น Optional โดยใช้เครื่องหมาย ‘?’ ท้ายพารามิเตอร์ เช่น `/user/{name?}`


Route::get('/user/{name?}', function ($name = 'Guest') {
    return 'Hello, ' . $name;
});

ตัวอย่างการใช้งาน:
– `/user` จะได้ `Hello, Guest`
– `/user/John` จะได้ `Hello, John`
– `/user/Sara` จะได้ `Hello, Sara`

3. Regular Expression Constraints

Regular Expression Constraints ใช้เพื่อระบุรูปแบบของค่าพารามิเตอร์ที่ต้องการช่วยให้แน่ใจว่าข้อมูลที่รับมากถูกต้องตามที่กำหนด เช่น ตัวเลขเท่านั้นหรือรูปแบบอีเมล


Route::get('/product/{id}', function ($id) {
    return 'Product ' . $id;
})->where('id', '[0-9]+');

ตัวอย่างการใช้งาน:
– `/product/25` จะได้ `Product 25`
– `/product/abc` จะไม่ถูกต้องเพราะ id ต้องเป็นตัวเลข
– `/product/123` จะได้ `Product 123`

สรุป

Laravel Routing Parameters ช่วยให้การจัดการเส้นทางภายในเว็บแอปพลิเคชันทำได้ง่ายและมีประสิทธิภาพขึ้น ซึ่งมีทั้ง Required Parameters, Optional Parameters และ Regular Expression Constraints เพื่อกำหนดรูปแบบของพารามิเตอร์ตามความต้องการของระบบ ฟีเจอร์เหล่านี้ช่วยในการควบคุมและความยืดหยุ่นในการพัฒนาเว็บแอปพลิเคชันได้เป็นอย่างดี!

เกี่ยวกับผู้เขียน

ITTHIPAT

สวัสดีครับผม อิทธิพัทธ์ (เป้) ชอบหาเทคนิคต่างๆที่ทำให้ชีวิต Programmer ง่ายขึ้น ทั้ง Automate, Library ชอบทำ Blog และ Video ถ้ามีเวลานะ!

ขอบคุณทุกคนที่ติดตาม และอ่านบทความของผมครับ ผมหวังว่าความรู้ที่เขียนขึ้นในเว็บไซต์นี้จะช่วยทุกท่านได้ไม่มากก็น้อย 

Scroll to Top