我有一个观察者为我的用户模型。在我的观察者->创建的事件中,我有一些代码。
public function created(User $user)
{
sendEmail();
}
字符串
所以,这个想法是,当一个用户被创建时,系统将向用户发送电子邮件通知,说明该帐户已创建。
问:当数据库正在播种时,它也调用这个方法'created'并向用户(种子中的用户)发送电子邮件通知。所以,我的问题是,我如何检查,可能在这个'created'方法中,如果laravel正在播种数据->不要发送电子邮件或不要运行'created' observer方法。
尝试谷歌,发现一些东西,但不工作正确.像YourModel::flushEventListeners();
的东西
5条答案
按热度按时间bkhjykvo1#
您可以使用
YourModel::unsetEventDispatcher();
删除临时模型的事件侦听器。字符串
mo49yndu2#
字符串
fjaof16o3#
您可以使用
WithoutModelEvents
trait静音事件字符串
或者你可以尝试工厂的
createQuietly
方法,例如型
velaa5lx4#
您可以使用saveQuietly()函数https://laravel.com/docs/8.x/eloquent#saving-a-single-model-without-events这允许您禁用单个模型的所有事件。
如果你想为一个模型禁用一个事件,请在这里阅读:http://derekmd.com/2019/02/conditionally-suppressing-laravel-event-listeners/
6l7fqoea5#
您只需将其添加到数据库seeder中即可
字符串