在 Symfony 中同时渲染模板和 return 响应
Render template and return response at the same time in Symfony
我想生成一个 PDF 文件并将其作为附件通过电子邮件发送
使用 Swift Mailer 和 knp-snappy-bundle。问题是它只生成和下载 PDF 文件而不渲染模板。我希望它生成 PDF 并同时呈现模板。
代码:
public function viewPostAction() {
$html = "Just a sample text to produce the PDF";
return new Response(
$this->get('knp_snappy.pdf')->getOutputFromHtml($html),
200,
array(
'Content-Type' => 'application/pdf',
'Content-Disposition' => 'attachment; filename="classement.pdf"'
)
);
$message = \Swift_Message::newInstance()
->setSubject('Some Subject')
->setFrom('test@gmail.com')
->setTo('test@gmail.com')
->setBody("test email")
->attach(Swift_Attachment::fromPath('C:\Users\acer\Downloads\classement.pdf'));
# Send the message
$this->get('mailer')
->send($message);
$post = $this->getDoctrine()->getRepository('AppBundle:Post')->findAll();
return $this->render("pages/index.html.twig", ['post' => $post]);
}
您的代码 returns 它创建的 PDF,这就是其余部分未执行的原因。你应该改变
return new Response(
$this->get('knp_snappy.pdf')->getOutputFromHtml($html),
200,
array(
'Content-Type' => 'application/pdf',
'Content-Disposition' => 'attachment; filename="classement.pdf"'
)
);
的代码
$this->get('knp_snappy.pdf')->generateFromHtml($html, 'C:\Users\acer\Downloads\classement.pdf');
我想生成一个 PDF 文件并将其作为附件通过电子邮件发送 使用 Swift Mailer 和 knp-snappy-bundle。问题是它只生成和下载 PDF 文件而不渲染模板。我希望它生成 PDF 并同时呈现模板。
代码:
public function viewPostAction() {
$html = "Just a sample text to produce the PDF";
return new Response(
$this->get('knp_snappy.pdf')->getOutputFromHtml($html),
200,
array(
'Content-Type' => 'application/pdf',
'Content-Disposition' => 'attachment; filename="classement.pdf"'
)
);
$message = \Swift_Message::newInstance()
->setSubject('Some Subject')
->setFrom('test@gmail.com')
->setTo('test@gmail.com')
->setBody("test email")
->attach(Swift_Attachment::fromPath('C:\Users\acer\Downloads\classement.pdf'));
# Send the message
$this->get('mailer')
->send($message);
$post = $this->getDoctrine()->getRepository('AppBundle:Post')->findAll();
return $this->render("pages/index.html.twig", ['post' => $post]);
}
您的代码 returns 它创建的 PDF,这就是其余部分未执行的原因。你应该改变
return new Response(
$this->get('knp_snappy.pdf')->getOutputFromHtml($html),
200,
array(
'Content-Type' => 'application/pdf',
'Content-Disposition' => 'attachment; filename="classement.pdf"'
)
);
的代码
$this->get('knp_snappy.pdf')->generateFromHtml($html, 'C:\Users\acer\Downloads\classement.pdf');