php – 来自Symfony Command的Swift邮件

前端之家收集整理的这篇文章主要介绍了php – 来自Symfony Command的Swift邮件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我尝试使用Symfony命令从命令行发送 Swift邮件.虽然我得到以下例外.
  1. Fatal error: Call to undefined method Symfony\Bundle\TwigBundle\Debug\TimedTwigE
  2. ngine::renderView() in ...

一个容器被添加到这个类中,这是我从ContainerAwareCommand命令中获得的

函数代码看起来像这样:

  1. private function sendViaEmail($content) {
  2. $message = \Swift_Message::newInstance()
  3. ->setSubject('Hello Email')
  4. ->setFrom('123@gmail.com')
  5. ->setTo('123@gmail.com')
  6. ->setBody(
  7. $this->container->get('templating')->renderView(
  8. 'BatchingBundle:Default:email.html.twig',array('content' => $content)
  9. )
  10. );
  11. $this->get('mailer')->send($message);
  12. }

更新
发生异常的行是$this-> container-> get(‘templating’) – > renderView(

正如你在代码中看到的那样,最后一行可能会失败,直到它最终到达那里.

正如错误消息所述,TwigEngine中没有renderView方法. renderView()是symfony基类控制器类中的一个快捷方式:
  1. namespace Symfony\Bundle\FrameworkBundle\Controller
  2.  
  3. class Controller extends ContainerAware
  4. {
  5. /**
  6. * Returns a rendered view.
  7. *
  8. * @param string $view The view name
  9. * @param array $parameters An array of parameters to pass to the view
  10. *
  11. * @return string The rendered view
  12. */
  13. public function renderView($view,array $parameters = array())
  14. {
  15. return $this->container->get('templating')->render($view,$parameters);
  16. }
  17. }

在那里,您可以看到使用模板服务呈现视图的正确方法.

  1. $this->container->get('templating')->render(
  2. 'BatchingBundle:Default:email.html.twig',array('content' => $content)
  3. )

猜你在找的PHP相关文章