gpt4 book ai didi

laravel-5 - Laravel - 播种数据库时不要触发事件

转载 作者:行者123 更新时间:2023-12-05 07:39:02 25 4
gpt4 key购买 nike

我有一个服务提供商,它定义了在启动方法中要观察的模型,例如:

Task::observe(TaskObserver::class);

TaskObserver.php 中,我正在监听模型更新时触发的 updated 事件。

发生这种情况时,Notification facade 会向一组客户端发送电子邮件:

Notification::send($clients, new TaskUpdated($task));

一切正常,但我遇到的问题是当我为我的数据库做种时,我得到一个错误 [Symfony\Component\Debug\Exception\FatalThrowableError]
__clone 方法在非对象上调用

我的表格播种器使用一个工厂,它只返回创建模型所需的值。

为什么在工厂创建任务时会触发 updated 事件?在运行播种器时有没有办法避免错误?

播种机:

class DatabaseSeeder extends Seeder
{
public function run()
{
...
$this->call(TasksTableSeeder::class);
...
}
}

class TasksTableSeeder extends Seeder
{
public function run()
{
factory(Task::class, 50)->create();
}
}

$factory->define(Task::class, function (Faker $faker) {
return [
'title' => $faker->sentence,
'description' => $faker->sentence(8),
'created_at' => Carbon::now(),
'updated_at' => Carbon::now(),
];
});

最佳答案

您可以在播种器中使用 createQuietly 而不是 create

public function run()
{
Contact::factory(50)->createQuietly();
}

关于laravel-5 - Laravel - 播种数据库时不要触发事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47426077/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com