Dev to webs {Coding…}

เรียนรู้การพัฒนาซอฟเวอร์ เพื่อความรู้ที่ยั่งยืน

บทที่ 9: การใช้งาน Route Parameters

Route Parameters คือค่าที่เราสามารถแนบไปกับเส้นทาง (Route) เพื่อส่งข้อมูลที่จำเป็นไปยัง Controller หรือการดำเนินการอื่นๆ ผ่าน URL ตัวอย่างเช่น การระบุ ID ของผู้ใช้งาน หรือชื่อผลิตภัณฑ์ เพื่อดึงข้อมูลที่ตรงตามพารามิเตอร์นั้นๆ Route Parameters ใน Laravel สามารถแบ่งเป็น 2 ประเภทหลัก คือ Required Parameters (พารามิเตอร์ที่จำเป็น) และ Optional Parameters (พารามิเตอร์ที่ไม่จำเป็น)

การใช้งาน Route Parameters

1. Required Parameters

พารามิเตอร์ที่จำเป็นต้องระบุใน URL ไม่เช่นนั้นระบบจะไม่สามารถเข้าถึงเส้นทางได้ ตัวอย่างการใช้งาน Required Parameters:

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

ในตัวอย่างนี้ ถ้าเข้าถึง URL http://localhost:8000/user/10 จะเห็นข้อความว่า User ID: 10 โดย 10 คือพารามิเตอร์ที่ส่งไปกับเส้นทางนี้ และ Laravel จะรับค่า id ผ่านฟังก์ชันและส่งออกเป็นข้อความตอบกลับ

2. Optional Parameters

Optional Parameters คือพารามิเตอร์ที่ไม่จำเป็นต้องระบุใน URL ถ้าไม่มีค่าพารามิเตอร์ Laravel จะใช้ค่าเริ่มต้นที่กำหนดไว้แทน ตัวอย่างการใช้งาน Optional Parameters:

Route::get('/product/{name?}', function ($name = 'Unknown') {
    return 'Product Name: ' . $name;
});

ในตัวอย่างนี้ หากเข้า URL http://localhost:8000/product/Laptop จะเห็นข้อความ Product Name: Laptop แต่ถ้าเข้าถึง URL http://localhost:8000/product จะเห็นข้อความ Product Name: Unknown

การใช้งาน Route Parameters หลายค่า

Laravel รองรับการส่งพารามิเตอร์หลายค่าในเส้นทางเดียว ตัวอย่างเช่น:

Route::get('/order/{orderId}/product/{productId}', function ($orderId, $productId) {
    return 'Order ID: ' . $orderId . ', Product ID: ' . $productId;
});

ในตัวอย่างนี้ หากเข้า URL http://localhost:8000/order/123/product/456 ระบบจะแสดงผล Order ID: 123, Product ID: 456


ตัวอย่างการใช้งาน Route Parameters

  1. Required Parameter:
Route::get('/post/{id}', function ($id) {
    return 'Post ID: ' . $id;
});

2. Optional Parameter:

Route::get('/category/{name?}', function ($name = 'General') {
    return 'Category: ' . $name;
});

3. Multiple Parameters:

Route::get('/user/{userId}/profile/{profileId}', function ($userId, $profileId) {
    return 'User ID: ' . $userId . ', Profile ID: ' . $profileId;
});


การนำไปใช้งาน

การใช้งาน Route Parameters มีประโยชน์อย่างยิ่งในกรณีที่ต้องการระบุข้อมูลเฉพาะเจาะจง เช่น ข้อมูลผู้ใช้งาน ผลิตภัณฑ์ บทความ หรือข้อมูลใดๆ ที่อ้างอิงตาม ID หรือชื่อ โดยสามารถใช้ค่าเหล่านี้ใน Controller เพื่อตรวจสอบและประมวลผลข้อมูลจากฐานข้อมูลได้สะดวก