我想发送一个带有变量名称的电子邮件。我创建了以下操作:
$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
。如果我想在发送邮件之前设置此值,我该怎么办?
如果我为电子邮件正文制作硬编码,则没有问题。
答案 0 :(得分:0)
Doctrine的方法find()
应返回结果集合,而不是单个对象。
您应该使用findOneByXXX()
。
答案 1 :(得分:0)
我已经添加了这个东西,问题就解决了。
->setBody($this->renderView('EnsNewBundle:Default:index.html.twig',array('name1'=>$product->getName())));