我正在 symfony2.3 中使用Swiftmailer
发送电子邮件,并设置flashBag
消息,以便用户成功发送电子邮件。在这个,我创建了路线,并从帐户页面的超链接调用它。但是,我的问题是当我使用来自页面的超链接访问路由然后路由将只执行一次很好,如果我复制该路由url并粘贴到浏览器的url栏并访问它,那么我的路由动作函数将执行两次而不是单次。这是我的代码。
的routing.yml
user_resend_email:
path: /resend_email
defaults: { _controller: UserBundle:User:resendEmail }
UserController.php
public function resendEmailAction(Request $request) {
$userManager = $this->get('fos_user.user_manager');
$user = $this->getUser();
if($user) {
$body = $this->container->get('templating')->renderResponse('UserBundle:Emails:email.html.twig');
$resend_email = \Swift_Message::newInstance()
->setSubject("Welcome ".$user->getUsername()."!")
->setFrom('do-not-reply@mydomain.com'))
->setTo($user->getEmail())
->setBody($body->getContent())
->setContentType('text/html');
$this->container->get('mailer')->send($resend_email);
$this->get('session')->getFlashBag()->add('success', sprintf('Email has been sent successfully'));
} else {
$this->get('session')->getFlashBag()->add('danger', 'No user found!');
}
return $this->redirect($this->generateUrl('user_account'));
}
我在谷歌搜索这个问题,但找不到确切的解决方案。