每当我需要为我的项目创建新的工厂和播种机时,无论是学习练习、业余爱好项目还是现实世界的应用程序(每次都做相同的操作感到无聊),我经常会回到 Laravel 文档。为了使这个过程变得简单,我决定创建一个指南,我可以在需要时参考,从而节省时间并避免需要搜索大量文档。如果本指南对其他人有帮助,那就太好了!
假设我们有一个用户/帖子关系,这意味着每个用户可以有一个或多个帖子,并且每个帖子都属于一个用户。
什么是工厂?
Laravel 中的工厂是一个为应用程序生成测试数据的类。这对于本地开发和暂存环境很有用,提供了很多好处。 Laravel 允许您为您拥有的每个模型创建一个工厂。
什么是播种者?
Laravel 中的 Seeders 用于使用种子类向数据库填充数据,这对于测试目的特别有用。
建造新工厂
要创建新工厂,请运行以下命令:
php artisan make:factory PostFactory
您将在database/factories目录下找到您的工厂类。这是定义工厂的示例:
公共函数定义():数组
{
返回 [
'title' => $this->faker->句子,
'content' => $this->faker->段落,
'user_id' => 用户::工厂(),
];
}
生成播种机
要创建新的播种器,请运行以下命令:
php artisan make:seeder PostSeeder
您将在database/seeders目录下找到seeder类。这是此类中 run 函数的示例:
公共函数 run(): void
{
帖子::工厂()
->计数(20)
->创建();
}
在同一目录中,您将找到DatabaseSeeder 类。确保它包含您所有的播种者:
公共函数 run(): void
{
// AppModelsUser::factory(10)->create();
// AppModelsUser::factory()->create([
// 'name' => '测试用户',
// '电子邮件' => 'test@example.com',
//]);
$这个->调用([
PostSeeder::类,
..,
..
]);
}
运行迁移并播种数据库
首先,运行数据库迁移:
php 工匠迁移
然后,为数据库播种:
php artisan db:seed
现在您已经有了测试数据。享受吧!
最初发布在我的博客上!