วิธีสร้าง Hook สำหรับ Models ต่าง ๆ ใน Laravel5.3 EP.2

สวัสดีครับ กลับมาพบกับผมอีกแล้ว เอาหล่ะไม่ต้องเกิ่นอะไรมากมาย ต่อเนื่องมาจากบทความ “วิธีสร้าง Hook สำหรับ Models ต่าง ๆ ใน Laravel5.3” ที่บอกว่ามันมีวิธีตั้ง Hook หรือ Event สำหรับ Models อยู่ 2 วิธีด้วยกัน โดยในส่วนบทความที่แล้วผมได้กล่าวถึงการตั้งค่าผ่าน AppServiceProvider.php โดยตรง

แต่ทีนี้ประเด็นคือ ถ้าโปรเจ็คเรานั้นมีหลาย Models แล้วในแต่ละ Models ดันมีหลาย Event ที่ต้องจัดการ….อือหืออออ แค่คิด Line of Code ที่จะออกมามหาศาลแน่ ๆ

แต่ !! ไม่ต้องเป็นกังวลไป เพราะว่า Laravel5.3 ได้มีวิธีลองรับเอาไว้แล้วสิ่งนั้นเรียกว่า Observer บอกได้เลยครับ code เราต้องสะอาดกว่าวิธีแรกแน่นอน

สร้าง Observer สำหรับ Models

ในตัวอย่างนี้จะเป็นการสร้าง Event แบบเดียวกับในบทความที่แล้ว คือเราจะเพิ่ม “คุง” เข้าไปต่อท้ายชื่อผู้ใช้งานก่อนที่จะทำการสร้างข้อมูลผ่าน Event

เริ่มแรกเลยเราต้องทำการสร้างโพลเดอร์ Observers ภายใน root-project/app และสร้างไฟล์ UserObserver.php ที่ root-project/app/Observers โดยในไฟล์จะมี code ดังนี้

หลังจากนั้นให้เราทำการไปยังที่ root-project/app/Providers/AppServerProvider.php แล้วให้เพิ่ม code ตามนี้ครับ

เพียงเท่านี้เราก็ได้ Event ไว้ใช้แล้วหล่ะครับ อ่อออ ! แล้วเราจะเห็นว่าผมได้มี Event สำหรับการลบข้อมูลเอาไว้ด้วย แต่ในนั้นก็ไม่ได้มีคำสั่งอะไร ก็อย่างที่เห็นนั้นหล่ะครับ ถ้าให้อยากได้ Event อะไรเพิ่มเติ่มก็เพียงเพิ่ม Method ที่ต้องการเข้าไปในคลาส UserOserver นั้นหล่ะครับ

— จบ —