Laravel 8 出厂状态后创建

Posted

技术标签:

【中文标题】Laravel 8 出厂状态后创建【英文标题】:Laravel 8 factory state afterCreating 【发布时间】:2021-02-10 21:40:31 【问题描述】:

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】:

可以在状态定义方法中直接定义这种行为。

public function active()

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

【讨论】:

我认为,这不是您问题的答案。 .它可能应该是您的问题的编辑 ^^^ 不同意这绝对是一个答案。从赞成票来看,这是一个有帮助的人。直到我看到你的评论,我才意识到他们回答了自己的问题。

以上是关于Laravel 8 出厂状态后创建的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 8 基于类的模型工厂

在 Laravel 中发送电子邮件后在表格中设置“状态 = 已发送”

Laravel 8:我如何在注册后验证用户的电子邮件地址而无需提供登录信息?

laravel 8.x 测试 api 返回错误的状态码

Datatable中基于ID的信息颜色状态高亮显示(Laravel 8)

验证失败后的 Laravel 复选框状态