您何时以及如何使用 Laravel Factory 和 Seeding

When and how do you use Laravel Factory and Seeding

我对使用它们感到困惑,所以想确保我正确使用它们并了解是否还有其他用例。这是我的用例:

1- 在单元测试中

public function test_index_returns_view()
{
    ...
    $streets = factory(Street::class, 10)->make();
    ...
}

2- 当我开发一个新的应用程序时,运行 播种者喜欢这样来 puplate DB

php artisan migrate:fresh --seed

3- 为了在生产中插入一些记录,将类似这样的东西放在迁移中

Artisan::call('db:seed', array('--class' => 'YourSeederClass'));

您概述的三个场景都是很好的用例。

本质上,您可以使用工厂来生成您想要播种的任何数据。您还可以利用工厂状态和事件来生成多个模型之间的复杂关系。

如果您真的愿意,从技术上讲没有什么可以阻止您使用工厂生成生产数据,只是您不会在任何官方文档中看到它。

我之前亲自使用过它来填充生产环境中新迁移的表的初始值(当然事先在我的本地环境中进行了全面测试!)