Laravel - 在播种数据库时不要发生事件

时间:2017-11-22 02:55:32

标签: laravel-5

我有一个服务提供商,它定义了在引导方法中要遵守的模型,例如:

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(),
    ];
});

0 个答案:

没有答案