Laravel 8 - 一次调用多个工厂状态
Laravel 8 - Calling multiple factory states at once
之前Laravel 8好像有一个选项可以同时排列不同的状态
$users = factory(App\User::class, 5)->states('premium', 'delinquent')->make();
(编辑:我现在意识到这是将 2 个不同的状态应用到同一个工厂记录中)
而我似乎无法在 Laravel 8 中找到与此等效的内容,有人知道如何找到吗?
本质上,我试图调用一个链来创建多个具有不同状态的记录,例如:
User::factory()->verified()->unverified()->banned()->create()
结果:3个不同的用户,一个已验证,一个未验证,一个被禁止
可以用下面的代码实现,只是显得有点冗长
User::factory()->verified()->create();
User::factory()->unverified()->create();
User::factory()->banned()->create();
1。摆脱状态,只使用序列
User::factory()
->count(3)
->state(new Sequence(
['status' => 'verified'],
['status' => 'unverified'],
['status' => 'banned'],
))
->create()
2。将变量用作函数
保留您的当前状态,但从预定义列表中动态访问它们。
$states = ['verified', 'unverified', 'banned'];
foreach ($states as $state) {
User::factory()->$state()->create();
}
3。每一个都手写出来。
类似于数字 2,但我们不使用循环。
User::factory()->verified()->create();
User::factory()->unverified()->create();
User::factory()->banned()->create();
之前Laravel 8好像有一个选项可以同时排列不同的状态
$users = factory(App\User::class, 5)->states('premium', 'delinquent')->make();
(编辑:我现在意识到这是将 2 个不同的状态应用到同一个工厂记录中)
而我似乎无法在 Laravel 8 中找到与此等效的内容,有人知道如何找到吗?
本质上,我试图调用一个链来创建多个具有不同状态的记录,例如:
User::factory()->verified()->unverified()->banned()->create()
结果:3个不同的用户,一个已验证,一个未验证,一个被禁止
可以用下面的代码实现,只是显得有点冗长
User::factory()->verified()->create();
User::factory()->unverified()->create();
User::factory()->banned()->create();
1。摆脱状态,只使用序列
User::factory()
->count(3)
->state(new Sequence(
['status' => 'verified'],
['status' => 'unverified'],
['status' => 'banned'],
))
->create()
2。将变量用作函数
保留您的当前状态,但从预定义列表中动态访问它们。
$states = ['verified', 'unverified', 'banned'];
foreach ($states as $state) {
User::factory()->$state()->create();
}
3。每一个都手写出来。
类似于数字 2,但我们不使用循环。
User::factory()->verified()->create();
User::factory()->unverified()->create();
User::factory()->banned()->create();