[英]Symfony2 service unable to find template
我刚刚通宵达旦地试图使它正常工作,我可能缺少一些愚蠢的东西,但请帮帮我。
我有一个symfony2服务,可以发送电子邮件。 我已经将@templating
服务注入到服务的构造函数中,如下所示:
order_service:
class: AppBundle\Services\OrderService
arguments: [ "@doctrine.orm.entity_manager", "@mailer", "@templating" ]
/**
* @var EntityManager
*/
protected $em;
protected $twig;
protected $mailer;
public function __construct(EntityManager $_entityManager, $_mailer, $_twig)
{
$this->em = $_entityManager;
$this->mailer = $_mailer;
$this->twig = $_twig;
}
我的模板位于AppBundle/Resources/views/Emails
。 在我的服务中,更进一步的功能是尝试发送电子邮件。
protected function send_emails($vendors, $order)
{
$customer = $order->getCustInfo();
// Send email(s) to customer
foreach ($order->getVouchers() as $voucher)
{
$message = \Swift_Message::newInstance()
->setSubject('Voucher # ' . $voucher->getId())
->setFrom('from_address@foobar.com')
->setTo($customer->email)
->setBody($this->twig->render(
'Emails/email-voucher.html.twig', [
'order' => $order,
'voucher' => $voucher,
'customer' => $customer
]
), 'text/html');
$this->mailer->send($message);
}
}
我总是收到错误消息Unable to find template \\"Emails/email-voucher.html.twig\\".
因此,这是我尝试过的内容的摘要:
app/Resources/views
->render()
想到的每条路径/相对路径 有任何想法吗?
即使您的服务位于与模板相同的名称空间中,这也不意味着您可以像这样直接调用它。 您是否尝试过渲染常规控制器模板的方式,如下所示:
->setBody($this->twig->render(
'AppBundle:Emails:email-voucher.html.twig', [
'order' => $order,
'voucher' => $voucher,
'customer' => $customer
]
), 'text/html');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.