【发布时间】:2018-08-10 09:56:40
【问题描述】:
我正在尝试使用 symfony 将 twig 模板渲染为变量。我有一个“sendAction”控制器,它使用 mailgun API 将电子邮件发送到一个或多个邮件列表。这是我的控制器代码:
public function sendAction(Request $request, Newsletter $newsletter, MailgunManager $mailgunManager) {
$form = $this->createForm(SendForm::class);
$form->handleRequest($request);
$formData = array();
if ($form->isSubmitted() && $form->isValid()) {
$formData = $form->getData();
$mailingLists = $formData['mailingLists'];
foreach ($mailingLists as $list) {
$mailgunManager->sendMail($list->getAddress(), $newsletter->getSubject(), 'test', $newsletter->getHtmlContent());
return $this->render('webapp/newsletter/sent.html.twig');
}
}
return $this->render('webapp/newsletter/send.html.twig', array(
'newsletter' => $newsletter,
'form' => $form->createView()
));
}
}
这是我的 sendMail (mailgun) 函数:
public function sendMail($mailingList, $subject, $textBody, $htmlBody) {
$mgClient = new Mailgun($this::APIKEY);
# Make the call to the client.
$mgClient->sendMessage($this::DOMAIN, array(
'from' => $this::SENDER,
'to' => $mailingList,
'subject' => $subject,
'text' => $textBody,
'html' => $htmlBody
));
}
我希望我的“$newsletter->getHtmlContent()”呈现名为“newsletter.twig.html”的模板。任何人都可以帮助我或指出我可以做什么或在哪里可以找到关于我正在尝试做什么的教程或注释的正确方向。 symfony 的文档很模糊。
【问题讨论】:
-
你想在模板
webapp/newsletter/send.html.twig内渲染模板newsletter.twig.html? -
你应该做类似的事情,例如
$mailgunManager->sendMail($list->getAddress(), $newsletter->getSubject(), 'test', $this->render($newsletter->getTemplate())); -
欢迎堆栈溢出,如果答案对您有帮助,您可以通过单击答案左侧的勾号将其标记为正确。
-
@DarkBee:你为什么一直删除
php和twig标签?你不觉得这个问题和 PHP 或者 Twig 有关吗? -
@lxg 我不这么认为。这里没有
twig的字母,它本身也不是php的问题。
标签: symfony