yii2 响应格式化程序未被调用
yii2 response formatter not being called
我正在尝试使用 robregonm pdfresponseFormatter 创建 PDF,问题是,pdf class 从未被称为格式响应类型。
'response' => [
'formatters' => [
'html' => [
'class' => 'yii\web\HtmlResponseFormatter',
],
'pdf' => [
'class' => 'robregonm\pdf\PdfResponseFormatter',
'mode' => '',
'format' => 'A4',
'defaultFontSize' => 0,
'defaultFont' => '',
'marginLeft' => 15,
'marginRight' => 15,
'marginTop' => 16,
'marginBottom' => 16,
'marginHeader' => 9,
'marginFooter' => 9,
]
]
],
....
$file = $this->getPdf($report);
....
private function getPdf($report){
Yii::$app->response->format = 'pdf';
Yii::$container->set(Yii::$app->response->formatters['pdf']['class']);
$this->layout = '//attachment';
return $this->render('pdf/actionplan', ['model' => $report]);
}
$file 变量在视图中包含 HTML 文本
你问错问题了。当然 $file 里面有 HTML,从你的角度来看你正在 returning HTML。
Yii::$app->response->format = 'pdf';
当控制器 return 响应浏览器时工作。
您想问的是为什么控制器功能(我希望这是在控制器中)不return 从HTML 创建的PDF。
如果您只想保存 PDF,看看我是如何处理的:https://github.com/Mihai-P/yii2-core/blob/master/components/Controller.php 在 actionPdf 函数中。该函数 return 是一个文件,您可以根据需要将其保存在服务器上。
不幸的是,我无法使此扩展程序正常工作。我确实 kartik pdf 工作得很好
我建议改用 kartik 扩展程序。
我正在尝试使用 robregonm pdfresponseFormatter 创建 PDF,问题是,pdf class 从未被称为格式响应类型。
'response' => [
'formatters' => [
'html' => [
'class' => 'yii\web\HtmlResponseFormatter',
],
'pdf' => [
'class' => 'robregonm\pdf\PdfResponseFormatter',
'mode' => '',
'format' => 'A4',
'defaultFontSize' => 0,
'defaultFont' => '',
'marginLeft' => 15,
'marginRight' => 15,
'marginTop' => 16,
'marginBottom' => 16,
'marginHeader' => 9,
'marginFooter' => 9,
]
]
],
....
$file = $this->getPdf($report);
....
private function getPdf($report){
Yii::$app->response->format = 'pdf';
Yii::$container->set(Yii::$app->response->formatters['pdf']['class']);
$this->layout = '//attachment';
return $this->render('pdf/actionplan', ['model' => $report]);
}
$file 变量在视图中包含 HTML 文本
你问错问题了。当然 $file 里面有 HTML,从你的角度来看你正在 returning HTML。
Yii::$app->response->format = 'pdf';
当控制器 return 响应浏览器时工作。
您想问的是为什么控制器功能(我希望这是在控制器中)不return 从HTML 创建的PDF。
如果您只想保存 PDF,看看我是如何处理的:https://github.com/Mihai-P/yii2-core/blob/master/components/Controller.php 在 actionPdf 函数中。该函数 return 是一个文件,您可以根据需要将其保存在服务器上。
不幸的是,我无法使此扩展程序正常工作。我确实 kartik pdf 工作得很好
我建议改用 kartik 扩展程序。