Trong bài viết này, tôi sẽ hướng dẫn các bạn về cách tạo dữ liệu giả trong cơ sở dữ liệu bằng cách sử dụng Laravel Factory và Seed trong Database Seeder.
Để tạo model factory, bạn cần chạy lệnh sau đây
php artisan make:factory UserFactory --model=User
Sau khi lệnh trên chạy xong, nó sẽ chạy ra một file mới nằm ở database/factories/UserFactory.php
Bây giờ chúng ta sẽ thêm data cho mỗi cột sau
<?php
namespace Database\Factories;
use App\Models\User;
use Illuminate\Database\Eloquent\Factories\Factory;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Str;
class UserFactory extends Factory
{
/**
* The name of the factory's corresponding model.
*
* @var string
*/
protected $model = User::class;
/**
* Define the model's default state.
*
* @return array
*/
public function definition()
{
return [
'name' => $this->faker->name(),
'email' => $this->faker->unique()->safeEmail(),
'email_verified_at' => now(),
'password' => Hash::make('password'),
'remember_token' => Str::random(10),
];
}
}
Tiếp theo, chúng ta sẽ tạo seeder cho UserFactory, bằng cách chạy lệnh command line sau đây
php artisan make:seed UserTableSeeder
Sau khi chạy lệnh trên xong, nó sẽ tạo một file mới nằm ở database/seeders/UserTableSeeder.php
Tiếp theo, chúng ta sẽ chỉnh sửa file trên như sau
<?php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
use App\Models\User;
class UserTableSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
User::factory()->count(50)->create();
}
}
Bước cuối cùng, chúng ta chỉ cần lệnh command sau để tạo ra dữ liệu
php artisan db:seed --class=UserTableSeeder
Ngoài ra, các bạn có thể chạy tất cả các seeder bằng lệnh command sau
php artisan db:seed
Tôi hy vọng bạn thích hướng dẫn này. Nếu bạn có bất kỳ câu hỏi nào hãy liên hệ với chúng tôi qua trang contact. Cảm ơn bạn.