[英]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.