Factory เป็นเครื่องมือที่ใช้สร้างข้อมูลจำลองลงในฐานข้อมูล เพื่อความสะดวกและรวดเร็วในการพัฒนาและทดสอบระบบ โดยไม่ต้องใช้ข้อมูลจริงจากผู้ใช้จริง
- เริ่มต้นด้วยการสร้าง Factory สำหรับ Model ที่ต้องการ
ตัวอย่างเช่น ต้องการสร้างข้อมูลจำลองเกี่ยวกับ People ให้ใช้คำสั่ง บน Terminal
php artisan make:factory PeopleFactory –model=People
คำสั่งนี้จะสร้างไฟล์ขึ้นมาใน database/factories/PeopleFactory.php
2. เตรียมข้อมูลจำลอง โดยเปิดไฟล์ PeopleFactory.php และเพิ่มโค้ดดังนี้
<?php
namespace Database\Factories;
use App\Models\People;
use Illuminate\Database\Eloquent\Factories\Factory;
/**
* @extends \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\People>
*/
class PeopleFactory extends Factory
{
protected $model = People::class;
/**
* Define the model's default state.
*
* @return array<string, mixed>
*/
public function definition()
{
return [
'name' => fake()->name,
'email' => fake()->unique()->safeEmail,
'address' => fake()->address,
'city' => fake()->city,
'postcode' => fake()->postcode,
];
}
}
Factory นี้จะเป็นการเตรียมข้อมูลจำลอง People ที่มีชื่อสุ่ม, อีเมล, ที่อยู่, เมือง และไปรษณีย์ที่ไม่ซ้ำกัน
-3. ต่อไปให้สร้าง Seeder เพื่อลงข้อมูลจำลอง โดยใช้คำสั่ง
php artisan make:seeder PeopleSeeder
เมื่อสร้างเสร็จแล้วจะได้ไฟล์ PeopleSeeder.php
ในโฟลเดอร์ database/seeders
เปิดไฟล์ PeopleSeeder.php และเพิ่มโค้ดดังนี้
<?php
namespace Database\Seeders;
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
class PeopleSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
// สร้างข้อมูลจำลอง 10 รายการ
\App\Models\People::factory(10)->create();
}
}
3. จากนั้นให้ทำการรันเพื่อทำการลงข้อมูลจำลองในฐานข้อมูล
php artisan db:seed –class=PeopleSeeder
เมื่อทำการรันแล้ว จะมีข้อมูลสุ่มในฐานข้อมูลเรียบร้อยแล้ว ตามรูป