【发布时间】:2017-11-04 10:06:52
【问题描述】:
我正在尝试在我的 Laravel 项目中使用 BarryVdh/DOMPDF 代码。 我用打印按钮制作了一个页面,带有
<a href="/print-facturen" class="btn btn-default printbtn">Print</a>
这是调用控制器函数:
public function printFacturen(Request $request) {
$facturen = Factuur::all();
view()->share('facturen', $facturen);
$pdf = PDF::loadView('pdf.facturen');
return $pdf->download('invoice.pdf');
}
这正在成功下载 PDF 文件。
我的路线是:
Route::get('/print-facturen', 'PrintController@printFacturen')->name('print_overzicht_facturen');
但是,我需要一个单选按钮的内容来填充我的 PDF。 所以我将我的 a href 更改为
<a href="#" class="btn btn-default printbtn">Print</a>
我添加了一个 jQuery 函数:
$(".printbtn").click(function(e)
{
var option = $("input[name='factuur_selectie']:checked").val();
$.ajax({
type: 'POST',
url: 'print-facturen',
data: {"optionID": option}
})
});
而我的控制器变成了
public function printFacturen(Request $request) {
$option = $request->get('optionID');
$facturen = Factuur::all();
$searchFacturen = new \Illuminate\Database\Eloquent\Collection();
foreach ($facturen as $factuur) {
if ($option == 1) {
$searchFacturen->add($factuur);
}
else if ($option == 2) {
if ($factuur->voldaan == true) {
$searchFacturen->add($factuur);
}
}
else if ($option == 3) {
if ($factuur->voldaan == false) {
$searchFacturen->add($factuur);
}
}
}
view()->share('facturen', $searchFacturen);
$pdf = PDF::loadView('pdf.facturen');
return $pdf->download('invoice.pdf');
}
我可以成功看到我的 optionID,但 PDF 文件不再被下载... :-(
当我收到一个 POST 错误时,我添加了这条路线:
Route::post('/print-facturen', 'PrintController@printFacturen')->name('print_overzicht_facturen');
在检查网络时,我看到了这个:
对不起,我还不能在这里张贴图片 :-( (https://user-images.githubusercontent.com/5870500/32404394-3555952c-c14f-11e7-82c3-2d000d1a2661.png)
我做错了什么?
最好的问候,
戴维
【问题讨论】:
标签: ajax laravel pdf download dompdf