Site icon บริษัท โค๊ดบี จำกัด

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

สอน-laravel-framework

สอน-laravel-framework

<h3>สอน Laravel 5 ตอน &colon; กำหนดเส้นทางเว็บไซต์ด้วย Router<&sol;h3>&NewLine;<p><&sol;br><br &sol;>&NewLine;Router เป็นส่วนที่มีไว้เพื่อกำหนดเส้นทางการทำงานของเว็บไซต์ ตัวอย่างเช่นเมื่อมีคนเข้าชมเว็บไซต์ หน้าแรกที่เรา<br &sol;>&NewLine;ต้องการให้แสดงต่อผู้ใช้ผ่านเบราว์เซอร์คือหน้าไหน และเมื่อเกิดเหตุการณ์ต่าง ๆ ในหน้าเว็บไซต์เช่นการคลิ๊กปุ่มสั่งซื้อ<br &sol;>&NewLine;<&excl;--more--><br &sol;>&NewLine;เส้นทางต่อไปจะให้โหลดหน้าไหนมาแสดง เราสามารถรับคำสั่งจากผู้ใช้งานเว็บไซต์และกำหนดเส้นทางเมื่อเกิดการ<br &sol;>&NewLine;ปฏิสัมพันธ์ภายในเว็บได้ผ่านสิ่งที่เรียกว่า Router ใน Laravel Framework อันที่จริง PHP Framework ส่วนมาก<br &sol;>&NewLine;มักจะมีส่วน Router เป็นคุณสมบัติหลัก ๆ ติดตัวมาด้วยอยู่แล้ว และมีหลักการในการทำงานคล้าย ๆ กันคือมีหน้าที่หลัก<br &sol;>&NewLine;ในการรับค่าข้อมูล กำหนดเส้นทาง และส่งต่อข้อมูลนั้นไปให้ส่วนอื่นทำงานในขั้นตอนต่อไป<&sol;p>&NewLine;<p><&sol;br><&sol;p>&NewLine;<h4>Router Method ที่เราใช้งานได้<&sol;h4>&NewLine;<p>ด้านล่างคือ Method ทั้งหมดใน Laravel Framework แต่หลัก ๆ ที่เราจะใช้ทดสอบในบทความนี้ก็จะมีแค่ 3 Method<br &sol;>&NewLine;คือ Route&colon;&colon;get&lpar;&rpar; สำหรับรับค่าตัวแปรที่ส่งมาแบบ GET และ Route&colon;&colon;post&lpar;&rpar; รับค่าตัวแปรแบบ POST ส่วน any<br &sol;>&NewLine;ความหมายก็คือเส้นทางหรือ url และตัวแปรที่ส่งมาจะใช้งานได้ทั้งแบบ GET และ POST<&sol;p>&NewLine;<pre class&equals;"lang&colon;default decode&colon;true " > &NewLine;Route&colon;&colon;get&lpar;&rpar;&semi; &NewLine;Route&colon;&colon;post&lpar;&rpar;&semi; &NewLine;Route&colon;&colon;put&lpar;&rpar;&semi; &NewLine;Route&colon;&colon;patch&lpar;&rpar;&semi; &NewLine;Route&colon;&colon;delete&lpar;&rpar;&semi; &NewLine;Route&colon;&colon;options&lpar;&rpar;&semi; &NewLine;Route&colon;&colon;any&lpar;&rpar;&semi; &NewLine;Route&colon;&colon;match&lpar;&rpar;&semi;<&sol;pre>&NewLine;<p><&sol;br><&sol;p>&NewLine;<h4>รูปแบบการใช้งาน Router<&sol;h4>&NewLine;<p>รูปแบบการใช้งาน Router ใน Laravel Framework คือ พารามิเตอร์ตัวแรกจะเป็นชื่อ Method หรือ uri ที่จะ<br &sol;>&NewLine;แสดงบน address bar ของเบราว์เซอร์และตามด้วยตัวแปรที่ส่งมาแบบ GET พารามิเตอร์ตัวที่สองคือ callback<br &sol;>&NewLine;ฟังก์ชั่น คือฟังก์ชั่นที่จะทำงานหลังจากเรียกใช้ Method นี้ ตัวอย่างเช่น สมมุติว่าโฟลเด้อโปรเจคคือ<&sol;p>&NewLine;<pre class&equals;"lang&colon;default decode&colon;true " >http&colon;&sol;&sol;localhost&sol;site&sol;public<&sol;pre>&NewLine;<p>เมื่อเราสร้าง Router Method ชื่อว่า hello <&sol;p>&NewLine;<pre class&equals;"lang&colon;default decode&colon;true " >Route&colon;&colon;get&lpar;'hello'&comma;function &lpar;&rpar; &lbrace; &NewLine; return "Hi&comma; I Am Beginner In Laravel"&semi; &NewLine;&rcub;&rpar;&semi;<&sol;pre>&NewLine;<p>และทดสอบการทำงานผ่าน url แบบนี้<&sol;p>&NewLine;<pre class&equals;"lang&colon;default decode&colon;true " >http&colon;&sol;&sol;localhost&sol;site&sol;public&sol;hello<&sol;pre>&NewLine;<p>ผลลัพธ์ที่ได้คือข้อความแสดงบนเบราว์เซอร์<&sol;p>&NewLine;<pre class&equals;"lang&colon;default highlight&colon;0 decode&colon;true " >Hi&comma; I Am Beginner In Laravel<&sol;pre>&NewLine;<p><&sol;br><&sol;p>&NewLine;<h4>Router เพิ่มเส้นทางและส่ง Parameter แบบ GET<&sol;h4>&NewLine;<p>1&period; ไฟล์หลักที่เราต้องใช้ในการกำหนดเส้นทางจะอยู่ที่ <strong>app&sol;Http&sol;routes&period;php <&sol;strong><br &sol;>&NewLine;2&period; ให้ลองเปิดไฟล์ <strong>routes&period;php<&sol;strong> และเพิ่ม Method ชื่อว่า hello และทดสอบรันผ่าน url<&sol;p>&NewLine;<pre class&equals;"lang&colon;default decode&colon;true " >Route&colon;&colon;get&lpar;'hello'&comma;function &lpar;&rpar; &lbrace; &NewLine; return "Hi&comma; I Am Beginner In Laravel"&semi; &NewLine;&rcub;&rpar;&semi;<&sol;pre>&NewLine;<p>3&period; จากนั้นให้ทดลองเพิ่มพารามิเตอร์เข้าไปที่ Method hello ดังนี้<&sol;p>&NewLine;<pre class&equals;"lang&colon;default decode&colon;true " > &NewLine;Route&colon;&colon;get&lpar;'hello&sol;&lbrace;value&rcub;'&comma;function &lpar;&dollar;value&rpar; &lbrace; &NewLine; return "Hi&comma; I Am Beginner In Laravel "&period;&dollar;value&semi; &NewLine;&rcub;&rpar;&semi;<&sol;pre>&NewLine;<p>ผลลัพธ์ที่ได้เมื่อเราเรียกใช้งานผ่านเบราว์เซอร์ <&sol;p>&NewLine;<pre class&equals;"lang&colon;default decode&colon;true " >http&colon;&sol;&sol;localhost&sol;site&sol;public&sol;hello&sol;นาจาา<&sol;pre>&NewLine;<pre class&equals;"lang&colon;default highlight&colon;0 decode&colon;true " >Hi&comma; I Am Beginner In Laravel นาจาา<&sol;pre>&NewLine;<p>&lbrace;value&rcub; คือตัวแปรที่จะถูกส่งเข้ามาผ่าน url เป็นตัวแปรแบบ GET และจะถูกรับค่าเข้ามาทำงานใน callback ฟังก์ชั่น<br &sol;>&NewLine;ผ่านตัวแปร &dollar;value พอจะเข้าใจหลักการการทำงานแล้วไช่ไหมครับ เมื่อเราได้ค่าตัวแปรนั้น ๆ มาแล้วในขั้นตอนต่อ ๆ ไป<br &sol;>&NewLine;อาจจะส่งตัวแปร &dollar;value ไปประมวลผลกับ controller ก่อนที่จะส่งไปพร้อมกับ view ใด ๆ แต่ในตัวอย่างจะเป็นการ<br &sol;>&NewLine;return ค่าเปล่า ๆ ออกไปแสดงผลเท่านั้น<&sol;p>&NewLine;<p><&sol;br><br &sol;>&NewLine;ตัวอย่างด้านบนเป็นการเพิ่ม Router Method แบบ GET ทำให้สามารถทดสอบการส่งตัวแปรผ่าน url ได้เลย<br &sol;>&NewLine;สำหรับการส่งข้อมูลแบบ POST เราจำเป็นจะต้องสร้าง html form ขึ้นมาก่อน ซึ่งจะรวมไปถึงการทำงานในส่วน<br &sol;>&NewLine;ของ view ด้วย ในกระทู้ต่อไปจะเพิ่มการสร้าง view และการส่งข้อมูลแบบ post ร่วมกับ Router Post Method<&sol;p>&NewLine;

Exit mobile version