Cakephp 使用CakePdf数据不显示

Cakephp 使用CakePdf数据不显示,cakephp,pdf-generation,cakephp-2.3,Cakephp,Pdf Generation,Cakephp 2.3,我对CakePDF有问题。我使用的是CakePHP2.3.6。我设置一切正常,引导和核心文件都正常 现在,我想生成许多pdf文件并下载它们。下载是可以的,但是当我下载文件时,我看到生成的pdf文件显示未定义的$data,我将$data发送到视图文件 这是我的控制器代码: App::uses('CakePdf', 'CakePdf.pdf'); // ... public function createPdf($id) { $data = $this->DBTable->f

我对
CakePDF
有问题。我使用的是CakePHP2.3.6。我设置一切正常,引导和核心文件都正常

现在,我想生成许多pdf文件并下载它们。下载是可以的,但是当我下载文件时,我看到生成的pdf文件显示
未定义的$data
,我将
$data
发送到视图文件

这是我的控制器代码:

App::uses('CakePdf', 'CakePdf.pdf');

// ...

public function createPdf($id) {
    $data = $this->DBTable->find('all', array(
        'conditions' => array(
            'DBTable.id' => $id
        )
    ));

    $CakePdf = new CakePdf();
    $path = APP . DS . 'pdf' . DS;

    foreach($data as $key => $var) {
        $CakePdf->template('create', 'default');

        $this->set('var', $var);

        $this->pdfConfig = array(
            'orientation' => 'portrait',
            'filename' => $var['id'] . ".pdf"
        );
        $CakePdf->write($path . $var['id'] . ".pdf");
    }
}
在这里,我以其他方式下载文件,与此问题无关,因为下载是可以的。当我运行这个程序时,所有的文件都会被下载,当我看到这些文件时,它们会说“Udefined var”,看起来它们并没有收到一个名为“$var”的变量

我把视图文件和布局放在ceeram说的地方


我现在该怎么办?请帮帮我。

我终于找到了解决办法。在
控制器功能中

$data=$this->ModelName->find('all');
$CakePdf=new CakePdf();
$CakePdf->template('view_file','default');
$this->pdfConfig=array('orientation'=>'portrait','filename'=>$data['name']);
$CakePdf->viewVars(array('data'=>$data));
$CakePdf->write($path.$data['name'].".pdf");
在这里,我们必须将
view\u file.ctp
存储在
view/Pdf/
中,将
default
存储在
view/Layouts/Pdf/
中,其中
view\u file.ctp
是我们要在
Pdf
中转换的视图文件,
default
是此特定视图文件的
layout

这里,
viewVars()
函数将
数据
传递到视图文件,如下所示:

$this->set->('data',$data);
如果这里有什么不清楚的地方,请告诉我。
谢谢。

如果在foreach循环中创建
CakePDF
实例会怎么样?不,相同的结果。我现在检查了一下,它显示了相同的错误@您在哪里引用
$var
?在
create
视图中,或在“create”视图中,而不是在“default”布局中,使用
default
laout@lp1051