【问题标题】:OctoberCMS DynamicPDF On Frontend fails前端的 OctoberCMS DynamicPDF 失败
【发布时间】:2017-06-17 07:51:02
【问题描述】:

我需要一些关于 OctoberCMS 在前端使用 DynamicPDF 插件的帮助:

拥有以下 10 月 CMS 页面:

title = "Dues"
url = "/account/dues"
layout = "profile"
is_hidden = 0
==
<?php
use Corp\Proj\Models\Account;
use Renatio\DynamicPDF\Classes\PDF;
use Renatio\DynamicPDF\Models\PDFTemplate;

function onInvoiceDownload()
{
    $id = post("id");
    $account = Account::find($id);

    return PDF::loadTemplate("proj:invoice", ['data' => $account])->stream();
}
?>
==
{% set account = user.account %}
<button data-request="onInvoiceDownload" data-request-data="id: {{ account.id }}"  class="btn btn-default">
    <i class="fa fa-download"></i> Download
</button>

预期的行为是在单击按钮时下载 PDF 文件,但它会静默加载并死掉……什么都不做。尝试使用 -&gt;download()-&gt;stream() 但没有任何效果!

有什么想法吗?

【问题讨论】:

    标签: octobercms dynamicpdf octobercms-plugins


    【解决方案1】:

    一种解决方法是创建一个专门用于创建 PDF 的新页面。

    title = "PDF Dues"
    url = "/account/dues/pdf/:id"
    layout = "profile"
    is_hidden = 0
    ==
    <?php
    use Corp\Proj\Models\Account;
    use Renatio\DynamicPDF\Classes\PDF;
    use Renatio\DynamicPDF\Models\PDFTemplate;
    
    function onStart()
        {
            $id= $this->param('id');    
            $account = Account::find($id);
            return PDF::loadTemplate("proj:invoice", ['data' => $account])->stream();
        }
    

    【讨论】:

      【解决方案2】:

      你好费尔南多·巴罗卡尔,

      我注意到您的代码中有一个错误。您必须使用范围解析运算符来加载模板。

      您的代码:

      return PDF::loadTemplate("proj:invoice", ['data' => $account])->stream();
      

      替换为:

      return PDF::loadTemplate("proj::invoice", ['data' => $account])->stream();
      

      希望对你有帮助。

      谢谢!

      【讨论】:

      • loadTemplate 方法的第一个参数是一个代表模板代码的字符串。它不是范围解析运算符。模板代码是在创建模板时提供的。此代码中冒号的使用是可选的。如果 OP 给他的模板一个代码“proj:invoice”,那么这不会是错误。
      猜你喜欢
      • 1970-01-01
      • 2019-09-09
      • 1970-01-01
      • 2017-08-13
      • 2020-11-18
      • 2021-01-29
      • 2020-02-23
      • 2018-08-19
      • 2017-05-14
      相关资源
      最近更新 更多