我有一个服务提供商,它定义了在引导方法中要遵守的模型,例如:
Task::observe(TaskObserver::class);
在TaskObserver.php
中,我正在侦听模型更新时触发的updated
事件。
发生这种情况时,通知外观会向一组客户发送电子邮件:
Notification::send($clients, new TaskUpdated($task));
一切正常,但我遇到的问题是当我播种数据库时,出现错误[Symfony\Component\Debug\Exception\FatalThrowableError]
__clone method called on non-object
我的表播种器使用的工厂只返回创建模型所需的值。
为什么在工厂创建任务时会触发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(),
];
});