每当我需要为我的项目创建新的工厂和播种机时,无论是学习练习、业余爱好项目还是实际应用程序,我经常会回到 Laravel 文档(每次都做同样的动作感到无聊)。为了使这个过程变得简单,我决定创建一个指南,我可以在需要时参考,从而节省时间并避免搜索大量文档。如果本指南对其他人有帮助,那就太好了!
假设我们有一个用户/帖子关系,这意味着每个用户可以有一个或多个帖子,并且每个帖子都属于一个用户。
什么是工厂?
Laravel 中的工厂是一个为应用程序生成测试数据的类。这对于本地开发和暂存环境很有用,提供了很多好处。 Laravel 允许您为您拥有的每个模型创建一个工厂。
什么是播种者?
Laravel 中的 Seeders 用于使用种子类向数据库填充数据,这对于测试目的特别有用。
生成新工厂
要创建新工厂,请运行以下命令:
php artisan make:factory PostFactory
您将在database/factories目录下找到您的工厂类。这是定义工厂的示例:
public function definition(): array { return [ 'title' => $this->faker->sentence, 'content' => $this->faker->paragraph, 'user_id' => User::factory(), ]; }
生成播种机
要创建新的播种器,请运行以下命令:
php artisan make:seeder PostSeeder
您将在database/seeders目录下找到seeder类。以下是此类中 run 函数的示例:
public function run(): void { Post::factory() ->count(20) ->create(); }
在同一目录中,您将找到DatabaseSeeder 类。确保它包含您所有的播种者:
public function run(): void { // \App\Models\User::factory(10)->create(); // \App\Models\User::factory()->create([ // 'name' => 'Test User', // 'email' => '[email protected]', // ]); $this->call([ PostSeeder::class, .., .. ]); }
运行迁移并为数据库设定种子
首先,运行数据库迁移:
php artisan 迁移
然后,为数据库播种:
php artisan db:seed
现在您已经有了测试数据。享受!
最初发布在我的博客上!
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3