cakephp - 将 View 渲染到 CakePHP 1.3 中的变量(以生成 pdf 并下载文件)

标签 cakephp cakephp-1.3

我正在尝试将 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/

相关文章:

javascript - PhpStorm:用PHP,HTML和JS编写ctp文件

cakephp - 使用 cakePHP,我可以在不先读取列值的情况下增加列的值吗?

mysql - CakePHP counterCache 加入不相关的表来更新计数器

php - CakePHP : Fatal error: Allowed memory size of 536870912 bytes exhausted (tried to allocate 52 bytes)

svn - CakePHP 和 SVN

CakePHP Ajax 表单提交和文件上传

cakephp - Cakephp中的邻居有替代品吗

php - 将数组传递给 CakePHP 中的 requestAction

CakePHP:在 AppController 中调用函数

php - Cakephp 复杂关系查找