我正在使用barryvdh / dompdf包装器来打印和保存PDF,当我在将数据插入数据库后尝试“打印”时,它没有将最近保存的数据提取到PDF。
我尝试通过获取上次保存的ID仍然没有运气来获取数据。
主视图的打印按钮:
<a href="{!! url('printPDF') !!}" target="_blank" class="btn btn-info">Print</a>
控制器:
public function printPDF(Request $request)
{
$visID = MyModel::orderBy('id', 'DESC')->pluck('id')->first();
$exi= $visID;
$pdf = PDF::loadView('pdfview', compact('exi'));
return $pdf->stream();
}
pdfview:
<table>
<tr>
<th>First Name:</th>
<td>{{ $exi['first_name'] }}</td>
</tr>
<tr>
<th>Last Name:</th>
<td>{{ $exi['last_name'] }}</td>
</tr>
<tr>
</table>
在打印预览中仅获取“名字:”和“姓氏:”。
答案 0 :(得分:0)
您只选择一个值,而不是数组或多值。
Model::orderBy('id', 'DESC')->pluck('**column name**','id')->first();
答案 1 :(得分:0)
您有一些可能需要改进的问题。第一个是,如果您希望获取对象集合,但仅使用first()
方法,它将只为您提供一个实例。使用pluck
会使情况更加复杂,因为它不会为您提供整个对象,而是示例代码中只有一个字段(id
):
$visID = MyModel::orderBy('id', 'DESC')->pluck('id')->first();
我建议您更改以上内容以获得完整的模型。删除pluck
,如果您的数据库具有latest()
字段来支持它,则添加created_at
:
$exi = MyModel::latest()->first();
或,您处在正确的轨道上,也可以使用orderBy来完成(Laravel的latest()
只是同一件事的语法糖-看起来很整洁):>
$exi = MyModel::orderBy('id', 'DESC')->first();
然后,而不是:
$exi= $visID;
您已经在上面的查询行中的变量中有了最后一个模型。转到刀片后,您将所有数据包含在$exi
中,并可以使用所需的对象符号:
<tr>
<th>First Name:</th>
<td>{{ $exi->first_name }}</td>
</tr>
// etc