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