symfony - Symfony Fosuserbundle 重新发送电子邮件
问题描述
我正在尝试创建一个链接,在 Symfony3 中注册后向用户重新发送确认令牌。
但是,我收到一条弃用消息,如下所示:
用户弃用:“fos_user.mailer”服务是私有的,从容器中获取它自 Symfony 3.2 以来已被弃用,并将在 4.0 中失败。您应该将服务公开,或者直接停止使用容器并改用依赖注入。
这是我的控制器:
public function resendActivationEmail($token, UserManagerInterface $userManager)
{
$user = $userManager->findUserByConfirmationToken($token);
if (is_null($user)) {return $this->redirectToRoute('fos_user_registration_register');}
$mailer = $this->get('fos_user.mailer');
$mailer->sendConfirmationEmailMessage($user);
return $this->redirectToRoute('fos_user_registration_check_email');
}
我的服务.yml:
services:
# default configuration for services in *this* file
_defaults:
autowire: truesubscribers, etc.
autoconfigure: true
public: false
我查看了文档,它说在 Symfony3.4 中,服务默认是私有的。我在我的应用程序中使用自动装配,那么我如何在fos_user.mailer
没有任何弃用警告的情况下获得?
我尝试将 Fosuserbundle 服务设置为公共,但无济于事:
services.yml
:
....
FOS\UserBundle:
public: true
任何帮助表示赞赏!
解决方案
利用$mailer = $this->container->get('fos_user.mailer');
代替$mailer = $this->get('fos_user.mailer');
推荐阅读
- node.js - 在一个项目中访问多个 Firebase 数据库
- arrays - 邮递员在数组中传递原始 json 数据
- c - 并非所有 malloc 的内存都是“堆”并且每个块在虚拟内存中不连续?
- api - setState() 在构造函数中调用:_WeatherState#823a5(生命周期状态:已创建,没有小部件,未安装)错误颤动
- google-admin-sdk - GSuite Vault API:任何方式以编程方式获取用户列表?
- excel - 使用一列中的数据进行 Excel VBA 多表搜索
- oracle - 为什么更新时触发器不触发
- arrays - VBA将过滤后的表数据获取到数组
- python - 向 Python enum.IntEnum 添加属性和起始值
- swift - 在 swift 上编写算法时出错