Php 在对数据库进行种子设定时,是否可以防止Laravel运行模型事件?
Laravel的seeder在我的模型上运行各种模型事件,这些事件触发新订单通知电子邮件,其中包括来自Php 在对数据库进行种子设定时,是否可以防止Laravel运行模型事件?,php,laravel,laravel-5,laravel-seeding,Php,Laravel,Laravel 5,Laravel Seeding,Laravel的seeder在我的模型上运行各种模型事件,这些事件触发新订单通知电子邮件,其中包括来自Product::saved()Model事件的电子邮件 这大大降低了数据库种子设定的速度。是否可以检测是否正在运行种子,如果是,请告诉Laravel不要运行模型事件?Model类中有一些函数允许您忽略事件 在使用模型播种之前,您需要执行以下操作 YourModel::flushEventListeners(); 在这种情况下,我建议从雄辩的模型中删除Dispatcher 比如说 // Che
Product::saved()
Model事件的电子邮件
这大大降低了数据库种子设定的速度。是否可以检测是否正在运行种子,如果是,请告诉Laravel不要运行模型事件?Model类中有一些函数允许您忽略事件 在使用模型播种之前,您需要执行以下操作
YourModel::flushEventListeners();
在这种情况下,我建议从雄辩的模型中删除Dispatcher 比如说
// Check Dispatcher
Model::getEventDispatcher()
// Remove Dispatcher
Model::unsetEventDispatcher()
// Add Dispatcher
Model::setEventDispatcher(new \Illuminate\Events\Dispatcher);
这似乎不适用于自定义事件。另一种解决方案:``//Remove Dispatcher Model::unsetEventDispatcher()``在这种情况下似乎可以工作。