创建后的Laravel 8工厂状态

时间:2020-10-28 13:51:12

标签: php laravel laravel-7 laravel-8

Laravel 7工厂具有方法 afterCreatingState(),您可以在其中定义将具有特定状态的模型保存到数据库中后发生的情况。

$factory->afterCreatingState(App\User::class, 'active', function ($user, $faker) {
    // ...
});

Laravel 8工厂没有此方法,而是只有常规的 afterCreating()

public function configure()
{
    return $this->afterCreating(function (User $user) {
        //
    });
}

如何实现这种行为?

1 个答案:

答案 0 :(得分:4)

可以在状态定义方法中定义此行为。

public function active()
{
    return $this->state(function (array $attributes) {
        return [
            'active' => true,
        ];
    })->afterCreating(function (User $user) {
        // ...
    });
}