我正在编写一个实用程序方法,它进行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');
实际发生的是,响应被解码,然后在$ response中显示数据视图('print-nosubmit')。这一切都很好,除了我不想显示视图。我仍然需要使用数据填充视图,但它只是为了获取HTML(不仅仅是来自'print-nosubmit'的html,而是来自该文件的html获取数据后)传递给DOMPDF for PDF创建。我(显然)以错误的方式解决这个问题,因为我实际上并不想加载布局但是我不知道在$ response中获取数据的好方法然后只返回原始HTML
我确信我可以采取一种方法来完成这项任务,但我需要一个指向正确方向的指针。
谢谢!
* 更新:为了使事情更清楚,'print-nosubmit'是一个VIEW文件,位于/views/scripts/print-nosubmit.phtml。
答案 0 :(得分:1)
在尝试了我能想到的一切后,我找到了解决方案:
$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内容。
好哇!