CakePHP:如何使用控制器内部的视图元素并使用 cakephp 版本 2.4.5 获取 html 以生成 pdf
CakePHP: How to use a view element inside of a controller and get html for genrate pdf using cakephp version 2.4.5
我试图从 CakePHP 的视图中获取 HTML,并想在控制器中使用它来生成 PDF,但是当我在变量中发送 HTML 时,我得到了一个错误,但它正在为文本。我这样调用函数:
<?php
$dataforpdf = '<h1>this is test text</h1>';
echo $this->Html->link('Downloads PDF',
array('controller' =>'employers','action'=>'generatePDF',$dataforpdf )
);
?>
我的 CakePHP 版本 2.4.5 和我的控制器功能:-
public function generatePDF($id = null)
{
$dataforpdf = $id;
require('mpdf/mpdf.php');
$mpdf=new mPDF();
$mpdf->WriteHTML($strContent);
$mpdf->Output('Pdf Report.pdf','D');die;
}
您正在以一种非常倒退的方式来处理这个问题。您的控制器应该为视图准备数据;而在您的代码中,您正在准备视图中的数据以传递给控制器。
在路由中传递 HTML 确实不是一个好主意。最好使用控制器操作中的视图模板生成 HTML:-
public function generatePDF($id = null)
$View = new View($this, false);
$View->set(compact('some', 'vars'));
$html = $View->render('view_name', 'layout_name');
require 'mpdf/mpdf.php';
$mpdf = new mPDF();
$mpdf->WriteHTML($html);
$mpdf->Output('Pdf Report.pdf','D');
die;
}
此处 view_name.ctp
将是一个模板,其中包含您的 PDF 所需的 HTML。
对于您正在使用的 PDF 库,我建议您阅读 Generating PDFs with CakePHP. There also appears to be a CakePHP 2.x plugin 上的这篇文章,您应该考虑使用它。
我试图从 CakePHP 的视图中获取 HTML,并想在控制器中使用它来生成 PDF,但是当我在变量中发送 HTML 时,我得到了一个错误,但它正在为文本。我这样调用函数:
<?php
$dataforpdf = '<h1>this is test text</h1>';
echo $this->Html->link('Downloads PDF',
array('controller' =>'employers','action'=>'generatePDF',$dataforpdf )
);
?>
我的 CakePHP 版本 2.4.5 和我的控制器功能:-
public function generatePDF($id = null)
{
$dataforpdf = $id;
require('mpdf/mpdf.php');
$mpdf=new mPDF();
$mpdf->WriteHTML($strContent);
$mpdf->Output('Pdf Report.pdf','D');die;
}
您正在以一种非常倒退的方式来处理这个问题。您的控制器应该为视图准备数据;而在您的代码中,您正在准备视图中的数据以传递给控制器。
在路由中传递 HTML 确实不是一个好主意。最好使用控制器操作中的视图模板生成 HTML:-
public function generatePDF($id = null)
$View = new View($this, false);
$View->set(compact('some', 'vars'));
$html = $View->render('view_name', 'layout_name');
require 'mpdf/mpdf.php';
$mpdf = new mPDF();
$mpdf->WriteHTML($html);
$mpdf->Output('Pdf Report.pdf','D');
die;
}
此处 view_name.ctp
将是一个模板,其中包含您的 PDF 所需的 HTML。
对于您正在使用的 PDF 库,我建议您阅读 Generating PDFs with CakePHP. There also appears to be a CakePHP 2.x plugin 上的这篇文章,您应该考虑使用它。