想要在symfony 2中发送带有变量的电子邮件

时间:2012-08-07 11:07:03

标签: symfony swiftmailer

我想发送一个带有变量名称的电子邮件。我创建了以下操作:

$product = $this->getDoctrine()
            ->getRepository('EnsNewBundle:Products')
            ->find(2);



        $message = \Swift_Message::newInstance()
        ->setSubject('Hello Email')
        ->setFrom('ucerturohit@gmail.com')
        ->setTo('ucerturohit@gmail.com')
        ->setContentType("text/html")
        ->setBody($this->renderView('EnsNewBundle:Default:index.html.twig'));
    $this->get('mailer')->send($message);

    return $this->render('EnsNewBundle:Default:index.html.twig',array('name'=>$product->getName()));

这里我想用邮件传输数据$product->getName()。在index.html.twig我定义如下:

Id of the product 5<br/>
Name of the product {{name}} <br/>
Description Fast Internet browsing speed

当我执行此操作时,我收到错误undefined variable name in index.html.twig。如果我想在发送邮件之前设置此值,我该怎么办? 如果我为电子邮件正文制作硬编码,则没有问题。

2 个答案:

答案 0 :(得分:0)

Doctrine的方法find()应返回结果集合,而不是单个对象。

您应该使用findOneByXXX()

答案 1 :(得分:0)

我已经添加了这个东西,问题就解决了。

 ->setBody($this->renderView('EnsNewBundle:Default:index.html.twig',array('name1'=>$product->getName())));