是否可以在对数据库进行种子设定时阻止 Laravel 运行模型事件?
2022-08-30 15:57:05
Laravel的播种机在我的模型上运行各种模型事件,这些事件触发了模型事件的新订单通知电子邮件等。Product::saved()
这会显著降低数据库种子设定的速度。是否有可能检测种子是否正在运行,如果是,请告诉Laravel不要运行模型事件?
Laravel的播种机在我的模型上运行各种模型事件,这些事件触发了模型事件的新订单通知电子邮件等。Product::saved()
这会显著降低数据库种子设定的速度。是否有可能检测种子是否正在运行,如果是,请告诉Laravel不要运行模型事件?
该类上有一些函数,允许您忽略事件。Model
在使用模型进行种子之前,您需要执行类似如下操作...
YourModel::flushEventListeners();
我建议在这种情况下从雄辩模型中删除调度程序。
例如。
// Check Dispatcher
Model::getEventDispatcher()
// Remove Dispatcher
Model::unsetEventDispatcher()
// Add Dispatcher
Model::setEventDispatcher(new \Illuminate\Events\Dispatcher);