我有一个小型 CRM 系统。我可以创建、更新和删除客户。我也有每个客户的详细 View 。现在我想在单个 View 的末尾有一个按钮:Create Offer
。
我有 2 个表。 1 表有名称:客户有一些字段姓名、姓氏等。我这样创建客户:
<form method="post" action="/mvs/mvs/public/admin/kunden">
{{ csrf_field() }}
<div class="container">
<div class="row">
<div class="col-md-12 col-md-offset-2" >
<div class="form-group">
<label for="vorname">Vorname</label>
<input type="text" class="form-control" name="vorname" id="vorname" placeholder="Vorname" value="{{ old('vorname') }}" required>
</div>
<div class="form-group">
<label for="nachname">Nachname</label>
<input type="text" class="form-control" name="nachname" id="nachname" placeholder="Nachname" value="{{ old('nachname') }}" required>
</div>
<div class="form-group">
<label for="strasse">Straße</label>
<input type="text" class="form-control" name="strasse" id="strasse" placeholder="Strasse" value="{{ old('strasse') }}" required>
</div>
<div class="form-group">
<label for="plz">PLZ</label>
<input type="number" class="form-control" name="plz" id="plz" placeholder="Plz" value="{{ old('plz') }}" required>
</div>
<div class="form-group">
<label for="wohnort">Wohnort</label>
<input type="text" class="form-control" name="wohnort" id="wohnort" placeholder="Wohnort" value="{{ old('wohnort') }}" required>
</div>
<div class="form-group">
<label for="mail">Mail</label>
<input type="mail" class="form-control" name="mail" id="mail" placeholder="E-mail" value="{{ old('mail') }}" required>
</div>
<div class="form-group">
<label for="telefon">Telefon</label>
<input type="text" class="form-control" name="telefon" id="telefon" placeholder="Telefon" value="{{ old('telefon') }}" required>
</div>
<div class="form-group">
<label for="geburtsdatum">Geburtsdatum</label>
<input type="date" class="form-control" name="geburtsdatum" id="geburtsdatum" placeholder="Geburtsdatum" value="{{ old('geburtsdatum') }}" required>
</div>
<br>
<button type="submit" class="btn btn-primary">Kunden anlegen</button>
<a href="{{ URL::previous() }}"><button type="submit" class="btn btn-danger">Abbrechen</button></a>
</div>
</div>
</div>
</form>
详细 View 与该页面类似。在详细 View 中,我制作了一个按钮。该按钮链接到动态 PDF Controller 。动态 PDF Controller 可以工作,但我不知道如何从详细 View 客户那里获取数据。我只从表中的所有客户那里获取数据。
这是片段:
function get_customer_data()
{
$customer_data = DB::table('kundens')
->limit(10)
->get();
return $customer_data;
}
我知道这是错误的(我是新手,对此感到抱歉) 但我不知道如何编写代码,从详细 View 中选择的客户那里获取数据。
当我点击按钮时,我希望 PDF 保存在数据库中并链接到该客户。
我希望我解释清楚了。如果不满意,请不要低估 - 我会在还不够的时候尝试更好地解释。
最佳答案
如果我理解正确的话: 您只想在点击按钮时从一个特定的客户那里获取数据?
带有 kunden id 的按钮链接:
<a href="/mvs/mvs/public/admin/kunden/pdf/{{ $kunden->id }}">Button html</a>
新路线:
Route::get('/mvs/mvs/public/admin/kunden/pdf/{id}', ControllerName@get_customer_data');
Controller 更新:
function get_customer_data($id)
{
//Handle PDF stuff here
$customer_data = DB::table('kundens')
->where('id', '=', $id)
->firstOrFail();
//Save PDF link to customer here
$customer_data->save();
return $customer_data;
}
---- 编辑 ----
完整指南:
HTML:
<form method="post" action="/mvs/mvs/public/admin/kunden/pdf/{{ $kunden->id }}">
{{ csrf_field() }}
<div class="container">
<div class="row">
<div class="col-md-12 col-md-offset-2" >
<div class="form-group">
<label for="vorname">Vorname</label>
<input type="text" class="form-control" name="vorname" id="vorname" placeholder="Vorname" value="{{ old('vorname') }}" required>
</div>
<div class="form-group">
<label for="nachname">Nachname</label>
<input type="text" class="form-control" name="nachname" id="nachname" placeholder="Nachname" value="{{ old('nachname') }}" required>
</div>
<div class="form-group">
<label for="strasse">Straße</label>
<input type="text" class="form-control" name="strasse" id="strasse" placeholder="Strasse" value="{{ old('strasse') }}" required>
</div>
<div class="form-group">
<label for="plz">PLZ</label>
<input type="number" class="form-control" name="plz" id="plz" placeholder="Plz" value="{{ old('plz') }}" required>
</div>
<div class="form-group">
<label for="wohnort">Wohnort</label>
<input type="text" class="form-control" name="wohnort" id="wohnort" placeholder="Wohnort" value="{{ old('wohnort') }}" required>
</div>
<div class="form-group">
<label for="mail">Mail</label>
<input type="mail" class="form-control" name="mail" id="mail" placeholder="E-mail" value="{{ old('mail') }}" required>
</div>
<div class="form-group">
<label for="telefon">Telefon</label>
<input type="text" class="form-control" name="telefon" id="telefon" placeholder="Telefon" value="{{ old('telefon') }}" required>
</div>
<div class="form-group">
<label for="geburtsdatum">Geburtsdatum</label>
<input type="date" class="form-control" name="geburtsdatum" id="geburtsdatum" placeholder="Geburtsdatum" value="{{ old('geburtsdatum') }}" required>
</div>
<br>
<input type="hidden" name="kunden-id" value="{{ $kunden->id }}" />
<button type="submit" class="btn btn-primary" >Kunden anlegen</button>
<a href="{{ URL::previous() }}"><button type="submit" class="btn btn-danger">Abbrechen</button></a>
</div>
</div>
</div>
</form>
路线:
Route::get('/mvs/mvs/public/admin/kunden/pdf/{id}', DynamicPDFController@index');
Controller :
namespace MVS\Http\Controllers;
use Illuminate\Http\Request;
use DB;
use PDF;
use MVS\Kunden;
class DynamicPDFController extends Controller
{
function index(Request $request)
{
$data = $request->all();
$id = $data['kunden-id'];
$customer_data = $this->get_customer_data($id);
//$finance_data = $this->get_finance_data();
return view('dynamic_pdf')->with('customer_data', $customer_data);
}
function get_customer_data($id)
{
$customer_data = Kunden::whereId($id)->first();
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;
}
}
关于php - 向客户添加 PDF - laravel 5.7,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52833648/