สอน-laravel-framework

สอน Laravel 5 : กำหนดเส้นทางเว็บไซต์ด้วย Router

สอน Laravel 5 ตอน : กำหนดเส้นทางเว็บไซต์ด้วย Router



Router เป็นส่วนที่มีไว้เพื่อกำหนดเส้นทางการทำงานของเว็บไซต์ ตัวอย่างเช่นเมื่อมีคนเข้าชมเว็บไซต์ หน้าแรกที่เรา
ต้องการให้แสดงต่อผู้ใช้ผ่านเบราว์เซอร์คือหน้าไหน และเมื่อเกิดเหตุการณ์ต่าง ๆ ในหน้าเว็บไซต์เช่นการคลิ๊กปุ่มสั่งซื้อ

เส้นทางต่อไปจะให้โหลดหน้าไหนมาแสดง เราสามารถรับคำสั่งจากผู้ใช้งานเว็บไซต์และกำหนดเส้นทางเมื่อเกิดการ
ปฏิสัมพันธ์ภายในเว็บได้ผ่านสิ่งที่เรียกว่า Router ใน Laravel Framework อันที่จริง PHP Framework ส่วนมาก
มักจะมีส่วน Router เป็นคุณสมบัติหลัก ๆ ติดตัวมาด้วยอยู่แล้ว และมีหลักการในการทำงานคล้าย ๆ กันคือมีหน้าที่หลัก
ในการรับค่าข้อมูล กำหนดเส้นทาง และส่งต่อข้อมูลนั้นไปให้ส่วนอื่นทำงานในขั้นตอนต่อไป


Router Method ที่เราใช้งานได้

ด้านล่างคือ Method ทั้งหมดใน Laravel Framework แต่หลัก ๆ ที่เราจะใช้ทดสอบในบทความนี้ก็จะมีแค่ 3 Method
คือ Route::get() สำหรับรับค่าตัวแปรที่ส่งมาแบบ GET และ Route::post() รับค่าตัวแปรแบบ POST ส่วน any
ความหมายก็คือเส้นทางหรือ url และตัวแปรที่ส่งมาจะใช้งานได้ทั้งแบบ GET และ POST


รูปแบบการใช้งาน Router

รูปแบบการใช้งาน Router ใน Laravel Framework คือ พารามิเตอร์ตัวแรกจะเป็นชื่อ Method หรือ uri ที่จะ
แสดงบน address bar ของเบราว์เซอร์และตามด้วยตัวแปรที่ส่งมาแบบ GET พารามิเตอร์ตัวที่สองคือ callback
ฟังก์ชั่น คือฟังก์ชั่นที่จะทำงานหลังจากเรียกใช้ Method นี้ ตัวอย่างเช่น สมมุติว่าโฟลเด้อโปรเจคคือ

เมื่อเราสร้าง Router Method ชื่อว่า hello

และทดสอบการทำงานผ่าน url แบบนี้

ผลลัพธ์ที่ได้คือข้อความแสดงบนเบราว์เซอร์


Router เพิ่มเส้นทางและส่ง Parameter แบบ GET

1. ไฟล์หลักที่เราต้องใช้ในการกำหนดเส้นทางจะอยู่ที่ app/Http/routes.php
2. ให้ลองเปิดไฟล์ routes.php และเพิ่ม Method ชื่อว่า hello และทดสอบรันผ่าน url

3. จากนั้นให้ทดลองเพิ่มพารามิเตอร์เข้าไปที่ Method hello ดังนี้

ผลลัพธ์ที่ได้เมื่อเราเรียกใช้งานผ่านเบราว์เซอร์

{value} คือตัวแปรที่จะถูกส่งเข้ามาผ่าน url เป็นตัวแปรแบบ GET และจะถูกรับค่าเข้ามาทำงานใน callback ฟังก์ชั่น
ผ่านตัวแปร $value พอจะเข้าใจหลักการการทำงานแล้วไช่ไหมครับ เมื่อเราได้ค่าตัวแปรนั้น ๆ มาแล้วในขั้นตอนต่อ ๆ ไป
อาจจะส่งตัวแปร $value ไปประมวลผลกับ controller ก่อนที่จะส่งไปพร้อมกับ view ใด ๆ แต่ในตัวอย่างจะเป็นการ
return ค่าเปล่า ๆ ออกไปแสดงผลเท่านั้น



ตัวอย่างด้านบนเป็นการเพิ่ม Router Method แบบ GET ทำให้สามารถทดสอบการส่งตัวแปรผ่าน url ได้เลย
สำหรับการส่งข้อมูลแบบ POST เราจำเป็นจะต้องสร้าง html form ขึ้นมาก่อน ซึ่งจะรวมไปถึงการทำงานในส่วน
ของ view ด้วย ในกระทู้ต่อไปจะเพิ่มการสร้าง view และการส่งข้อมูลแบบ post ร่วมกับ Router Post Method

กระทู้ใกล้เคียง

สอน Laravel 5 : การใช้งานไฟล์ assets ต่าง ๆ ใน Vie... สอน Laravel 5 : การใช้งานไฟล์ assets ต่าง ๆ ใน View จากบทความที่แล้ว เราได้ทำความเข้าใจเกี่ยวกับ Router ใน Laravel ซึ่งมีบทบาทที่สำคัญมาก ๆ สำหรับน...
สอน Laravel 5 : สร้าง html form ส่งข้อมูลแบบ POST... สอน Laravel 5 : สร้าง html form ส่งข้อมูลแบบ POST การสร้างแบบฟอร์มเพื่อรับข้อมูลแบบ POST จากผู้ใช้งานเว็บไซต์ และส่งข้อมูลนั้นไปยังส่วนของการบันทึก...
สอน Laravel 5 : ใช้งาน Controller ร่วมกับ Router... สอน Laravel : ใช้งาน Controller ร่วมกับ Router โดยทั่วไปแล้ว Controller คือหัวใจหลักของการทำงานใน PHP MVC Framework เป็นส่วนที่ทำหน้าที่เชื่อมโยง ...
สอน Laravel 5 : ทำเว็บไซต์ 2 ภาษาง่าย ๆ กับ Larave... สอน Laravel 5 : ทำเว็บไซต์ 2 ภาษาง่าย ๆ กับ Laravel หลักการทำเว็บไซต์ 2 ภาษาหรือมากกว่า 2 ภาษา ใน Laravel 5 โดยโครงสร้างการทำงานแล้วไม่ได้ต่างจาก ...