ผมได้แง้มถึงคำว่า verb ไว้ในโพสต์เรื่อง Laravel ตอนที่ 7 เริ่มเขียน

as : ตั้งชื่อให้ url อันนี้ไว้ใช้กับคำสั่งสร้าง url มันจะง่าย ปกติการตั้งชื่อ เขาจะใช้ ชื่อ controller ตามด้วย จุด แล้วก็ชื่อฟังก์ชั่น (ตัด get ทิ้ง) ตามด้วย จุด สุดท้ายจบด้วย verb

verb ที่ผมพูดถึงคืออะไร?

หลับตาแล้วนึกถึงตอนที่เราสร้างฟอร์ม

เพ่งไปที่ method

GET,POST เรารู้จักมันในนาม method แต่มันมีชื่อเรียกอีกอย่างหนึ่งที่เราไม่ค่อยได้ยินมากนักคือ  verb

GET,POST มันคือ verb

แล้ว verb หรือ method นั้นมันไม่ได้มีแค่ GET,POST เท่านั้น แต่มันยังมี PUT, DELETE อีกด้วย

GET นั้้น เรารู้แล้วว่ามันเป็นการส่งข้อมูลผ่านฟอร์มมาแบบ GET หรือเป็นการเรียกหน้าเว็บผ่านเบราเซอร์ หรือคลิกที่ลิ้งก์ และโดยปกติตอนที่เราเขียนโค้ดโดยไม่ได้ใช้เฟรมเวิร์ค เราจะใช้ method นี้สำหรับ ส่ง id ของข้อมูลเพื่อดึงข้อมูลนั้นออกมาแสดงรายละเอียด เราจะใช้ method นี้สำหรับส่ง id ของข้อมูลไปลบมันออกจากฐานข้อมูล

POST นั้น เป็นการส่งข้อมูลผ่านฟอร์ม เราใช้สำหรับส่งข้อมูลไปบันทึกลงฐานข้อมูล หรือแก้ไขข้อมูล

เราคุ้นเคยกับอีสองตัวนี้มาก แต่เราไม่คุ้นเคยกับอีสองตัวที่ผมเพิ่งพูดถึง มันไว้ใช้ทำอะไร

PUT เขาไว้ใช้สำหรับการแก้ไขข้อมูล

DELETE เขาไว้ใช้สำหรับการลบข้อมูล

ทีนี้  <form> ที่เราคุ้นเคยนั้นมันไม่ซัพพอร์ตเมธอด PUT,DELETE คุณจะทำอย่างนี้ไม่ได้

แต่ไม่มีปัญหาหรอกครับ มันมีวิธีทำอยู่ เดี๋ยวเราจะได้เรียนรู้ในบทที่ว่าด้วยเรื่องฟอร์ม

แล้วผมเอามาพูดตอนนี้ทำไม

บทหน้าผมจะพูดถึง routes.php อย่างละเอียด แล้วการเขียนโค้ดอนุญาติให้ URL ไหนๆใช้งานนั้น คำสั่งมันมีให้ต้องระบุ verb  ถ้าหากคุณระบุ verb ไม่สอดคล้องกับการส่งค่าผ่านฟอร์มมา Laravel มันก็ไม่อนุญาติให้ผ่าน เป็นไง ซีเคียวดีมั้ยล่ะ

เพราะงั้นต่อจากนี้ไปเราก็ต้องใช้ verb ให้ถูกต้อง

ถ้าหากเป็นการขอดูข้อมูล ไปหน้านู้นนี่นั่น ใช้ GET

ถ้าหากเป็นการบันทึกข้อมูล ใช้ POST

ถ้าเป็นการแก้ไขข้อมูลใช้ PUT  (ใช้ POST ก็ได้นะ)

ถ้าเป็นการลบข้อมูลใช้ DELETE

ลองดูตัวอย่างการเขียน routes.php พอเป็นน้ำจิ้ม

ถ้าเป็นการเรียกดูข้อมูลให้ไปเรียกใช้ฟังก์ชั่น getIndex
ถ้าเป็นการรับข้อมูลจากฟอร์มจะเอาไปบันทึกลงฐานข้อมูลให้ไปเรียกใช้ฟังก์ชั่น  postIndex
ถ้าเป็นการรับข้อมูลจากฟอร์มาเพื่อแก้ไข ให้เรียกใช้ฟังก์ชั่น putIndex
ถ้าเป็นการลบข้อมูลออกจากฐานข้อมูล ให้เรียกใช้ฟังก์ชั่น delete (จริงๆอยากเขียนฟังก์ชั่นชื่อ deleteIndex ก็ได้นะ แต่ชาวบ้านชาวช่องเขามักนิยม delete เฉยๆ)