我正在开发产品管理系统,并且有一个称为购买的模块。如何在laravel中提交表单时生成pdf 5.2
我也写过store()
方法的控制器和模型部分。
现在我想在点击提交按钮时生成发票。我使用PDF生成器插件作为barryvdh/laravel-dompdf
。我是PHP & Laravel的新手,只想知道执行PDF生成过程的指令。
我正在开发产品管理系统,并且有一个称为购买的模块。如何在laravel中提交表单时生成pdf 5.2
我也写过store()
方法的控制器和模型部分。
现在我想在点击提交按钮时生成发票。我使用PDF生成器插件作为barryvdh/laravel-dompdf
。我是PHP & Laravel的新手,只想知道执行PDF生成过程的指令。
您可以按照安装步骤Laravel 5:
Barryvdh\DomPDF\ServiceProvider::class,
您config/app.php
文件添加为的ServiceProviderconfig/app.php
文件此,'PDF' => Barryvdh\DomPDF\Facade::class,
添加到您的外墙然后在您的商店方法中,保存所有信息后,您可以生成如下所示的PDF:
$pdf = \PDF::loadView('pdf.invoice', $data);
return $pdf->download('invoice.pdf');
这将加载存储在resources/views/pdf
与存储在$data
的值invoice
视图,然后返回一个叫做invoice.pdf
一个可下载的文件。
这一切都直接来自使用部分的DomPDF docs。
我明白你所说的,但我与这$数据混淆。你能告诉我如何表明这一点。我不知道应该把$ data放在哪里,就像$ data = array('test'=> $ request-> get('test_name'),........ ......... );然后“你给的代码” –
@sandunijayawardena你使用它类似于你如何使用'邮件',如果你曾经使用过。 '$ data'是一个包含您传入并可以使用的键和值的数组。例如'$ data ['name'] =“name”;'可以让你在视图内使用'$ name'。 – James
根据本Github Link
2-窗体页
<form id="FOO" method="POST" action="/pdf">
<input type="text" name="object" >
<button type="submit">Generate</button>
</form>
3-路由安装DOMPDF:Route::post('pdf' , '[email protected]');
请注意,在这里,你将需要包含一个隐藏的输入,使用csrf令牌,或者只需在中排除此路由中间件,否则它不会让你发布(如果你还没有验证工作呢,不介意这个通知)
4-控制器现在
public function PDFGenerator (Request $request){
$html = <<<ENDHTML
<!DOCTYPE html>
<html>
<head>
<title>Foo</title>
<meta charset="utf-8">
</head>
<body style="margin: 30px;">
<center style="text-decoration: underline;">{$request->object}</center>
</body>
</html>
ENDHTML;
$dompdf = App::make('dompdf.wrapper');
$dompdf->loadHTML($html);
$dompdf->stream("hello.pdf");
return $dompdf->stream();
}
This is the Heredoc documentation页面万一你需要更多关于如何使用它的信息。
不要忘记将库包含在控制器中,等待您的反馈。
有文件中的一切,你只需要按照它https://github.com/barryvdh/laravel-dompdf –