Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/255.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在对数据库进行种子设定时,是否可以防止Laravel运行模型事件?_Php_Laravel_Laravel 5_Laravel Seeding - Fatal编程技术网

Php 在对数据库进行种子设定时,是否可以防止Laravel运行模型事件?

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

Laravel的seeder在我的模型上运行各种模型事件,这些事件触发新订单通知电子邮件,其中包括来自
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()``在这种情况下似乎可以工作。