我正在尝试将 View 呈现给变量。 然后该变量将用于生成 pdf。 然后应该使用媒体 View 下载该 pdf 文件。
这是我的 Controller 代码:
$dir = ROOT . '/app/tmp/evaluationpdf/';
$path = $dir . $evaluationid . '.pdf';
$evaluation = $this->SelfEvaluation->find('first', array(
'conditions' => array('SelfEvaluation.id' => $evaluationid),
'contain' => array('Submission' => array('Application'), 'Applicant', 'Member')));
$this->set(compact('evaluation'));
$this->output = '';
$this->layout = false;
$html = $this->render('/elements/self_evaluation_pdf');
$this->_generate_pdf($html, $path);
$this->view = 'Media';
$params = array(
'id' => $evaluationid . '.pdf',
'name' => $evaluationid,
'download' => true,
'extension' => 'pdf',
'path' => $dir,
);
$this->set($params);
文件已按预期创建,但第一个“$this->render”输出也会发送到浏览器。
该文件从未被下载。
知道如何解决这个问题吗?
最佳答案
简单的修复方法是在第一次 render() 调用后将 $this->output 设置为 '' 。
更正确的方法是使用 requestAction() 而不是 render()。
关于cakephp - 将 View 渲染到 CakePHP 1.3 中的变量(以生成 pdf 并下载文件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14256571/