Heyho,
我有一个小网站,想要创建一个pdf。为此,我使用dompdf和一些基本的php:
/**
* @Route ("/generatePDF/{php}", name="generatePDF")
*/
public function generatePDFAction($php)
{
$isPHP = $php;
if($isPHP == true)
{
$lang = "php";
}else
{
$lang = "js";
}
//open a link with $lang and get it's html (=> $html)
//Just for testing, normally it's a working websites html-code
$html = $isPHP;
$dompdf = new Dompdf();
$dompdf->loadHtml($html);
$dompdf->setPaper('a4', 'landscape');
$dompdf->render();
$pdf = $dompdf->output();
//$isPHP = false;
if($isPHP == true)
{
file_put_contents("downloads/rulesphp.pdf", $pdf);
unset($dompdf);
return new Response($this -> redirect('/downloads/rulesphp.pdf'));
}else
{
file_put_contents("downloads/rulesjs.pdf", $pdf);
unset($dompdf);
return new Response($this -> redirect('/downloads/rulesjs.pdf'));
}
}
然后调用它:
<a class="btn btn-default" href="{{ path('generatePDF', {'php': 'true'}) }}">PDF aktualisieren</a>
或
<a class="btn btn-default" href="{{ path('generatePDF', {'php': 'false'}) }}">PDF aktualisieren</a>
我是否需要php或js规则。
$isPHP
是布尔值I切换到函数。第一个if语句就像魅力一样,只在最后打破...
$ html通常是网站html,我只是将其设置为$isPHP
以进行测试(以查看$isPHP
是否为true/false
)。现在问题是:
每当我运行我的代码时,它都会创建并重定向到rulesphp.pdf,无论$isPHP
是否设置为&#34; true&#34;或&#34;假&#34;。
Sidenote :当我取消注释&#34; //$isPHP = false
&#34; - 如预期的那样,它会创建一个&#34; rulesjs.pdf&#34;但是如果我再次评论或删除它,它就不会再回到它的旧行为(就好像{ {1}}总是$isPHP
- &gt;创建rulesphp.pdf,无论设置了true
,它只是保持&#34;创建rulesjs.pdf / $isPHP
是总是$isPHP
&#34; -behavior。
Sidenote2 :false
设置正确,如果它是真的,那么pdfs内容为真(因为$isPHP
),如果它是&#39 ; s false,pdfs内容也是假的。
答案 0 :(得分:1)
@Route ("/generatePDF/{php}", name="generatePDF")
您的路由传递了字符串参数。因此,如果您通过/generatePDF/true
,/generatePDF/false
网址调用它,则会收到字符串。
使用:
$isPHP === 'true'
或$isPHP = $php === 'true'