Symfony - TCPdf - 无法找到模板

时间:2016-04-18 13:04:53

标签: php symfony tcpdf

我遇到了TCPdf和Symfony的恼人错误:

request.CRITICAL: Uncaught PHP Exception InvalidArgumentException: "Unable to find template "" (looked into: /Applications/MAMP/htdocs/api/app/Resources/views)." at /Applications/MAMP/htdocs/api/vendor/symfony/symfony/src/Symfony/Bridge/Twig/TwigEngine.php line 128 {"exception":"[object] (InvalidArgumentException(code: 0): Unable to find template \"\" (looked into: /Applications/MAMP/htdocs/api/app/Resources/views). at /Applications/MAMP/htdocs/api/vendor/symfony/symfony/src/Symfony/Bridge/Twig/TwigEngine.php:128, Twig_Error_Loader(code: 0): Unable to find template \"\" (looked into: /Applications/MAMP/htdocs/api/app/Resources/views). at /Applications/MAMP/htdocs/api/vendor/twig/twig/lib/Twig/Loader/Filesystem.php:215)"} []

在我的控制器中,我只是创建一个pdf并输出它:

public function pdfAction()
{
    $pdf = ...;
    ...
    $pdf->output();
}

我最好的猜测是Symfony正在尝试返回一个Response(但是输出已经给出了一个),因而错误。但是我无法在Symfony中找到解决方法。欢迎任何帮助或提示。

PS:pdf工作得很完美,只有那个发送错误信息的独白者。

供将来参考

这就是我最终解决的问题:

$pdf->Output('output.pdf', 'I');
return new Response();

我尝试了很多不同的选项,但这是唯一一个不会触发错误的选项。

1 个答案:

答案 0 :(得分:1)

使用Symfony,您需要将响应作为数组返回。

也许这段代码有效:

$pdfOutput = $pdf->output();

return array('pdfOutput' => $pdfOutput); // or just try to return $pdf;

// If you don't use annotation : 
return $this->render('your-template.html.twig', array(
    'pdfOutput' => $pdfOutput
));

在你的模板中,如果你想得到一些东西,你的模板看起来就是这样:

{{ dump(pdfOutput) }}

修改

尝试使用路径作为参数

$ pdf->输出(" output.pdf",' I');

TCPDF output doc