Laravel 8 创建后的出厂状态

Laravel 8 factory state afterCreating

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

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

Laravel 8工厂没有这个方法,只有通用的afterCreating().

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

如何实现这种行为?

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

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

装箱后 - 状态

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

配置模型工厂。

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