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