Laravel的播种机在我的模型上运行各种模型事件,从Product::saved()
模型事件中触发新订单通知电子邮件。
这显着减慢了数据库播种速度。是否可以检测种子是否正在运行,如果是,请告诉Laravel不要运行模型事件?
答案 0 :(得分:27)
Model
类上有一些函数可以让你忽略事件。
在使用模型播种之前,您需要做这样的事情......
YourModel::flushEventListeners();
答案 1 :(得分:20)
我建议从Eloquent Model中删除此案例中的Dispatcher。
例如。
// Check Dispatcher
Model::getEventDispatcher()
// Remove Dispatcher
Model::unsetEventDispatcher()
// Add Dispatcher
Model::setEventDispatcher(new \Illuminate\Events\Dispatcher);