[Laravel] Data Factory คลิ๊กเดียวชีวิตง่ายขึ้น
หากคุณคือคนที่ใช้ Laravel Framework แล้วเคยสร้างโปรเจคไว้แล้ว เคยมั้ยที่เวลาสร้าง Database และ Table ต่างๆไว้แล้วจะต้องมา Insert ข้อมูลจำลองทีละแถวซึ่งใช้เวลามากและลงแรงมากเกินไป จะดีกว่ามั้ย ถ้าใช้คำสั่งไม่กี่คำสั่งแล้วใช้ไปได้ตลอด
ฝากกดโฆษณา Google Ads สัก click เพื่อเป็นกำลังใจแก่ผู้เขียนด้วยนะครับ
Factory
Factory เป็นคลาสหนึ่งที่ช่วยสร้าง Model Object สำหรับการปั้นข้อมูลให้สามารถนำมาใช้งานได้ง่ายขึ้นเพียงเรียก method ที่ชื่อ create
Seeder
Seeder เป็นอีกคลาสหนึ่งที่ใช้งานร่วมกับ Factory ซึ่งเอาไว้สำหรับสร้าง ข้อมูลทดสอบ ลงในฐานข้อมูลตามที่ ซึ่งตามที่เราต้องการ
สรุปให้เห็นภาพ คือ Factory หน้าที่ของมันเปรียบได้กับเป็นโรงงานที่รับแม่พิมพ์(Model) มาเพื่อสร้างคุ้กกี้( Object) ขึ้นมา แล้วหลังจากนั้นก็ทำการเดินเครื่องปั้ม (Seed) แล้วยัดใส่กล่อง (Table Database)
วิธีการเรียกคำสั่งต่างๆ
1. php artisan make:migration createCoupon
ในขั้นตอนนี้ไม่กล่าวถึงในตอนต้น เป็นขั้นที่สำคัญ คือ เอาไว้สร้างกล่องเก็บคุ๊กกี้ขึ้น ก็คือสร้าง Table ใน Database โดยสร้าง field ต่างๆไปด้วย นี้คือ หน้าตาของ migration file
2. php artisan make:model Coupon
ในขั้นตอนนี้เป็นการสร้าง แม่พิมพ์คุ๊กกี้ ที่ต้องการว่าจะมีหน้าตาแบบไหน หน้าของไฟล์จะเป็นแบบนี้
3. php artisan make:factory CouponFactory
เป็นขั้นตอนหลักที่สำคัญสำหรับบทความนี้ คือ เป็นการนำ Model หรือ แม่พิมพ์มาสร้างรูปแบบโดยการจำลองข้อมูลขึ้นมา หน้าตาไฟล์ที่ได้จะเป็นแบบนี้ ซึ่ง ในส่วนของ Array ที่ Return นั้นจะเป็นการสร้างขึ้นโดยที่อยากให้เป็นอะไรก็แล้วแต่เรา coupon_name จะเป็น paragraph ส่วน coupon_code จะเป็นตัวเลข
4. php artisan make:seeder CouponSeeder
เป็นขั้นตอนสุดท้ายที่จะจับคุ๊กกี้ของเรา ยัดลงกล่องแล้ว ที่เห็นเลข 50 คือ จำนวนที่เราต้องการจำพิมพ์
เมื่อดำเนินการเสร็จไม่มีอะไรผิดพลาดก็จะได้ ตามนี้