Magento 2-程序化发票-pdf创建在第二个循环后停止

时间:2018-10-23 14:12:36

标签: php magento2

我正在尝试为每个符合我的条件的发票导出PDF和XML文件。到目前为止,除了一种非常奇怪的行为之外,一切都运行良好。

在Controller的执行函数中,我有一个foreach循环,像这样遍历数据库中的结果

foreach($result as $row) {
    $this->writeXml($row['document_increment']);
    $this->writePdf($row['document_id'], $row['document_increment']);
}

调用这两个函数

    public function writeXml($document_increment){
       $content =  $this->buildXml();
       $myfile = fopen('/var/www/magento2/var/folder/_' . $document_increment. '.xml', "w");
       fwrite($myfile, $content);
       fclose($myfile);
    }

    public function writePdf($document_id, $document_increment){
       $invoice = $this->invoiceRepository->get($document_id);
       $pdf = $this->invoicePdfGeneratorService->execute($invoice);
       $this->fileFactory->create(
            '_' . $document_increment. '.pdf',
            $pdf->render(),
            \Magento\Framework\App\Filesystem\DirectoryList::VAR_ELO ,
            'application/pdf'
        );
    }

我完全知道,其中一些代码根本不是Magento 2的最佳实践,但这更多的是“我们可以做到吗?”情况。

现在,我已经设置了一个ajax请求来手动调用我的Controller,以便从后端对其进行测试。当我这样做时,Magento会生成两个发票PDF和两个发票XML文件-然后停止,没有任何错误,警告或类似信息。我将其范围缩小到writePdf()函数。删除该文件将按预期生成5个(在查询中为{LIMIT)XML文件。

我已经排除了通常的情况

  • php.ini中的执行时间
  • 无效的MySQL结果/查询错误(因为它可以很好地与XML配合使用)

并检查了所有日志,但是没有异常/错误/某些东西,也没有我认为负责的某些配置。

我认为这很奇怪,因为它在 second 循环后就中断了。有谁知道是什么原因造成的?我真的很感谢每一个提示。

编辑

我将触发操作从ajax调用更改为cron作业。事情变得更加奇怪:现在它可以工作了,cron保存了所有PDF和XML文件。有人可以向我解释/有人知道为什么吗?

0 个答案:

没有答案