【发布时间】:2018-10-23 09:44:37
【问题描述】:
点击一个按钮,我想要一个 PDF。但我没有得到 PDF,我只是从数据库中获取数据。
我的代码是:
<?php
namespace MVS\Http\Controllers;
use Illuminate\Http\Request;
use DB;
use PDF;
use MVS\Kunden;
class DynamicPDFController extends Controller
{
function index()
{
$customer_data = $this->get_customer_data();
$finance_data = $this->get_finance_data();
return view('dynamic_pdf')->with('customer_data', $customer_data);
}
function get_customer_data($id)
{
$customer_data = Kunden::find($id);
return $customer_data;
}
function pdf()
{
$pdf = \App::make('dompdf.wrapper');
$pdf->loadHTML($this->convert_customer_data_to_html());
return $pdf->stream();
}
function convert_customer_data_to_html()
{
$customer_data = $this->get_customer_data();
$output = '
<h3 align="center">Angebot</h3>
<table width="100%" style="border-collapse: collapse; border: 0px;">
<tr>
<th style="border: 1px solid; padding:12px;" width="20%">Vorname</th>
<th style="border: 1px solid; padding:12px;" width="30%">Nachname</th>
<th style="border: 1px solid; padding:12px;" width="15%">Stadt</th>
<th style="border: 1px solid; padding:12px;" width="15%">PLZ</th>
</tr>
';
foreach($customer_data as $kunden)
{
$output .= '
<tr>
<td style="border: 1px solid; padding:12px;">'.$kunden->vorname.'</td>
<td style="border: 1px solid; padding:12px;">'.$kunden->nachname.'</td>
<td style="border: 1px solid; padding:12px;">'.$kunden->wohnort.'</td>
<td style="border: 1px solid; padding:12px;">'.$kunden->plz.'</td>
</tr>
';
}
$output .= '</table>';
return $output;
}
}
我刚刚得到以下消息输出:
{"id":1,"created_at":"2018-10-15 06:56:15","updated_at":"2018-10-15 06:56:15","user_id":2, "vorname":"Patrick","nachname":"Marks","strasse":"teststraße 9","plz":47906,"wohnort":"Krefeld","mail":"p-dierig@sdsd. de","telefon":21514462,"geburtsdatum":"2013-10-30"}
路线如下:
Route::get('/admin/kunden/pdf/{id}', 'DynamicPDFController@get_customer_data');
当我在控制器中使用此代码时:
function index()
{
$customer_data = $this->get_customer_data();
return view('dynamic_pdf')->with('customer_data', $customer_data);
}
function get_customer_data()
{
$customer_data = DB::table('kundens')
->limit(10)
->get();
return $customer_data;
}
我将获得一份包含所有客户的 PDF。但我只想从特定用户那里获得数据...
【问题讨论】:
-
您似乎在单击按钮时调用
index方法。你能检查一下是否调用了正确的控制器方法吗? -
我添加了路线。也许有帮助?
-
您调用了错误的控制器操作。
@get_customer_data只从数据库中获取客户并返回模型。您必须调用@pdf操作。 -
我更新了帖子