代码之家  ›  专栏  ›  技术社区  ›  Noble-Surfer

laravel-尝试从blade.php文件中有条件地设置pdf文件的内容

  •  0
  • Noble-Surfer  · 技术社区  · 6 年前

    在我正在开发的laravel/php站点上有一个特性,允许用户下载一个pdf文件形式的催款单-pdf是根据属于他们选择下载pdf的数据库条目的属性生成的。

    这个 reminder.blade.php 为下载生成的文件原来是这样的:

    <html>
    <head>
        ...
    </head>
    <body style="....">
        @foreach ($transaction as $transaction)
            ...
            <!-- Content of the PDF here -->
        @endforeach
    </body>
    

    我想根据 transactionItems $transaction 如果只有一个 transactionItem 美元交易 用一个 $transactionItem.currentStatusId 财产价值 1010 (特定值的id $transactionitem.currentStatusID 字段中,只应生成pdf的第一页,否则,应生成所有页(与当前相同)

    为此,我试图包围 <body></body> 带标签 @if 它检查 交易项目 美元交易 正在导出,并在每个 @如果 和; @else 声明,所以我对 提醒.blade.php 文件的意思是它当前看起来是这样的:

    <html>
    <head>
        ...
    </head>
    @if(($transaction->count($transaction['transactionItem']) == 1) && ($transaction['transactionItem']['currentStatusId'] == '1010'))
        <body style="....">
            @foreach ($transaction as $transaction)
                ...
                <!-- First page of PDF only -->
            @endforeach
        </body>
    @else
        <body style="...">
            @foreach ($transaction as $transaction)
                ...
                <!-- Original PDF here -->
            @endforeach
        </body>
    @endif
    </html>
    

    但是,当我现在导出pdf文件时,尽管文件下载成功,但当我尝试打开它时,会收到一个错误,上面说:

    未能加载PDF文档。

    有人知道我为什么会得到这个吗?我想是我做错了 @如果 我用以动态生成内容的语句,但我看不到…有人能指点我正确的方向吗?如何根据数据库中用于生成pdf的字段的值更改生成的pdf的内容?

    0 回复  |  直到 6 年前