Route自动执行多次

时间:2016-04-19 13:28:41

标签: php session url symfony-2.3

我正在 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'));
}

我在谷歌搜索这个问题,但找不到确切的解决方案。

0 个答案:

没有答案