无法将变量发送到twig以便发送电子邮件

时间:2017-08-02 08:35:32

标签: symfony email twig swiftmailer symfony-3.2

我想发送确认电子邮件,但我无法将表单的变量发送到我的电子邮件

这是我的代码

        if($form->isValid() && $form->isSubmitted()) {
        $NewsLetters = $form->getData();

        if(!$NewsLetters->getNom()) {
            $NewsLetters->setNom("Anonyme");
        }

        $em->persist($NewsLetters);
        $em->flush();

        $nom = $NewsLetters->getNom();

        $message = (new \Swift_Message('Confirmation d\'inscription à la newsletter'))
            ->setFrom('ez@zezezezeeze.fr')
            ->setTo($NewsLetters->getEmail())
            ->setBody(
                $this->renderView('emails/confirmationEmail.html.twig'),
                array('nom' => $nom,      //HERE
                ),
                'text/html'
            );
        $this->get('mailer')->send($message);

但是twig给了我这个错误

  

第4行的电子邮件\ confirmationEmail.html.twig中不存在变量“nom”。

<html>

<body>
Vous avez été inscrit avec succès à la Newsletter : {{ nom }}
{#{{ newsletterWebsite }} {{ newsletterStylo }} {{ newsletterCrayon }}#}
</body>
</html>

通常是工作

感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

似乎存在错误缩进的问题:带有参数的数组应该作为renderView方法的第二个参数传递,如下所示:

 $message = (new \Swift_Message('Confirmation d\'inscription à la newsletter'))
            ->setFrom('ez@zezezezeeze.fr')
            ->setTo($NewsLetters->getEmail())
            ->setBody(
                $this->renderView(
                  'emails/confirmationEmail.html.twig',
                   array('nom' => $nom),
                ), // close renderView
                'text/html'
            ); // close setBody

希望这个帮助