26

Laravel 的播种器在我的模型上运行各种模型事件,这些事件会触发来自模型事件的新订单通知电子邮件等Product::saved()

这会显着减慢数据库播种速度。是否可以检测种子是否正在运行,如果是,告诉 Laravel 不要运行模型事件?

4

2 回答 2

37

类中有一些函数Model可以让你忽略事件。

在使用模型播种之前,您需要执行以下操作...

YourModel::flushEventListeners();
于 2015-05-27T20:27:31.523 回答
26

我建议从 Eloquent 模型中删除这种情况下的 Dispatcher。

例如。

// Check Dispatcher
Model::getEventDispatcher()

// Remove Dispatcher
Model::unsetEventDispatcher()

// Add Dispatcher
Model::setEventDispatcher(new \Illuminate\Events\Dispatcher);
于 2015-05-27T20:53:33.563 回答