是否可以在不使用状态的情况下覆盖工厂的默认值?
我使用的工具可以从我的模型生成工厂,但我想修改一些属性。我知道我可以使用
$factory->state(\App\User::class, 'moderator', function ...
但是我想这样做而不依赖于在每个模型创建时指定状态。像
这样的东西$factory->state(\App\User::class, 'default', function ...
答案 0 :(得分:1)
您在工厂中定义的是默认行为,例如
$factory->define(App\User::class, function(Faker $faker) {
return [
...
'name' => 'Jon Snow',
...
];
});
您可以使用状态覆盖此默认行为,例如
$factory->state(App\User::class, 'bad-guy', function (Faker $faker) {
return [
'name' => 'Night King'
]
};
您可以执行的最后一次覆盖是您要创建该实例的时间,例如
$jonSnow = factory(App\User::class)->create();
$nightKing = factory(App\User::class)->states('bad-guy')->create();
$samTarly = factory(App\User::class)->create([
'name' => 'Sam Tarly'
]);