0

如何在magento的\app\code\core\Mage\Wishlist\Helper\Data.php文件中调用以下两行

$this->_helper->layout()->disableLayout();   
$this->_helper->viewRenderer->setNoRender();  

实际上 Data.php 中有一个自己创建的函数 getPdf() 用于生成愿望清单项目的 pdf。它通过使用语句生成没有错误的 PDF

$pdf->save("hello.pdf");

但是当我使用以下语句时

$pdfString = $pdf->render();
header("Content-Disposition: attachment; filename=myfile.pdf");
header("Content-type: application/x-pdf");
echo $pdfString;

它抛出错误:Adobe 阅读器无法打开 myfile.pdf,因为它不是受支持的文件类型或文件已损坏。现在我需要调用这两行

$this->_helper->layout()->disableLayout();   
$this->_helper->viewRenderer->setNoRender(); 

在 getPdf() 函数中,它不会在 pdf 文档中添加 html 内容。你能帮我吗?

4

1 回答 1

1

在 echo 之前$pdfString,添加以下代码以禁用视图渲染和布局:

$vr = Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
$vr->setNoRender(true);

$layout = Mage::getSingleton('core/layout');
$layout->disableLayout();

如果Mage::getSingleton()调用没有返回正确的布局对象,您也可以尝试$layout = $this->getLayout();

于 2012-08-31T18:12:03.537 回答