0

我正在编写一个实用程序方法,该方法通过 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-nosubmit')与 $response 中的数据一起显示。这一切都很好,除了我不想显示视图。我仍然需要使用数据填充视图,但它只是为了获取 HTML(不仅仅是来自“print-nosubmit”的 html,而是在获取数据后来自该文件的 html)传递给 DOMPDF for PDF创建。我(显然)以错误的方式处理这个问题,因为我实际上不想加载布局,但我不知道有一种好的方法来获取 $response 中的数据到该视图,然后只取回原始 HTML .

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

谢谢!

*更新:为了让事情更清楚,'print-nosubmit' 是一个 VIEW 文件,位于 /views/scripts/print-nosubmit.phtml。

4

1 回答 1

2

在尝试了我能想到的一切之后,我找到了一个解决方案:

$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 内容。

嘘!

于 2012-11-09T19:16:04.863 回答