我使用guard作为我的自定义身份验证器,我需要在身份验证器内部发送一封电子邮件,使用我注入的服务fos_user.mailer,其中包含有twig的参数,因为它呈现了它需要发送的消息,现在我遇到的问题是我收到错误"检测到服务的循环引用......"这说我的身份验证器调用了调用twig的邮件程序,再次调用授权检查程序(我的身份验证器)导致无限循环, 你有什么解决方案
答案 0 :(得分:0)
快速而肮脏的解决方法是将容器注入验证器并在需要时获取邮件服务。它很脏,因为它隐藏了你的依赖。
但为什么需要在身份验证器中发送电子邮件?您可以使用symfony的身份验证相关事件之一吗? (参见AuthenticationEvents和SecurityEvents类)。如果这还不够,您还可以创建自己的活动,并在负责发送该邮件的其他服务中收听该活动。