我有一个 Laravel/Angular 应用程序,并且想要根据将在该 PDF 上显示的变量的内容来更改在其中一个页面上生成的 PDF 的内容。
PDF 在文件reminder.blade.php
中,目前有以下内容:
<html>
<head>
...
</head>
<body style="-webkit-font-smoothing: antialiased; font-family: 'Roboto'; font-weight: normal; margin: 0; padding: 0;">
...
</body>
</html>
我想<body></body>
根据要在 PDF 上显示的项目数量以及这些项目的“状态”来更改显示的内容,所以我用 PHPif
语句包围了 HTML:
<html>
<head>
...
</head>
@if(( count( {{ $transaction['transactionItem'] }} ) == 1) && {{ $transaction['transactionItem']['currentStatusId'] }} == '1010')
<body style="-webkit-font-smoothing: antialiased; font-family: 'Roboto'; font-weight: normal; margin: 0; padding: 0;">
... Only first page of PDF here
</body>
@else
<body style="-webkit-font-smoothing: antaliased; font-family: 'Roboto'; font-weight: normal; margin: 0; padding: 0;">
... Full PDF content here
</body>
@endif
</html>
但是,当我现在单击生成和下载 PDF 的按钮时,控制台的“网络”选项卡中出现错误,其中显示:
解析错误:语法错误,意外'<'(查看:/home/vagrant/code/resources/views/pdfs/prov/reminder.blade.php)
在 419cdd3906d761bc1bb55581502a15d04c1fe7a7.php 第 8 行 CompilerEngine->handleViewException(object(FatalThrowableError), 1) 在 PhpEngine.php 第 46 行
这似乎要么抱怨@if
我添加的语句,要么根据这里unexpected '<'
的答案,是因为我在行的双引号内使用单引号......即使我正在关闭两者都是正确的-至少据我所知...<body ...>
有人知道我在这里做错了什么吗?如何使生成的 PDF 的内容成为有条件的,就像我正在尝试的那样?