将数据传递给Zend View但不显示,只需要RAW HTML即可



我正在编写一种实用程序方法,该方法可以进行API调用以获取数据,然后填充数据:

// decode API response
$response = json_decode($sa->response);
// pass data to view
$this->view->paf = $response->response;
// NEED TO GET HTML HERE INSTEAD OF DISPLAYING VIEW
$this->_helper->layout->setLayout('print-nosubmit');

实际发生的事情是解码响应,然后在$响应中显示带有数据的视图('print-nosibmit')。这一切都很好,除了我不想显示视图。我仍然需要获取带有数据填充的视图,但它只是获取html(不仅是" print-nosubmit"中的html,而且在该文件获得数据后,来自该文件的html)即可传递到pdf的dompdf创建。我(显然)以错误的方式进行操作,因为我实际上不想加载布局,但是我不知道将数据以$响应的方式获取该视图的好方法,然后只能恢复原始HTML。

我确定可以采取一种方法来完成这项任务,但是我需要一个朝正确方向的指针。

谢谢!

*更新:为了使事情变得更加清晰,'print-nosubmit'是一个视图文件,位于/views/scripts/print-nosubmit.phtml.phtml.phtml.phtml.phtml.phtml.phtml.phtml.phtml.phtml.phtml.phtml.phtml.phtml.phtml.phtml.phtml.phtml.phtml.phtml.phtml.phtml.phtml.phtml.phtml.p./p>

尝试了几乎所有我想到的一切后,我找到了一个解决方案:

$this->_helper->layout()->disableLayout();
$this->_helper->viewRenderer->setNoRender(true);
$this->view->addScriptPath(APPLICATION_PATH . '/layouts/scripts/'); //default layout path
$html = $this->view->render('print-nosubmit.phtml');

我现在拥有print-nosubmit.phtml生成的整个html内容,然后将其存储在$ html中的数据。

huzzah!

最新更新