首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在create视图中保存数据后生成pdf

如何在create视图中保存数据后生成pdf
EN

Stack Overflow用户
提问于 2019-08-18 15:30:37
回答 2查看 203关注 0票数 1

我使用barryvdh/dompdf包装来打印和保存PDF,当我尝试在将数据插入数据库后“打印”时,它不会将上次保存的数据提取到PDF中。

我已经尝试过通过获取最后保存的id来获取数据,但仍然没有运气。

主视图打印按钮:

代码语言:javascript
复制
<a href="{!! url('printPDF') !!}" target="_blank" class="btn btn-info">Print</a>

主计长:

代码语言:javascript
复制
 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:

代码语言:javascript
复制
<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>

只获取“名字:”和“姓氏:”在打印预览。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-08-18 15:55:28

你有几个问题,你可能会改进。第一种情况是,如果您希望获得一个对象集合,但只使用first()方法,那么它只会给出一个实例。使用pluck会进一步复杂这一点,因为它不会为您提供整个对象,而只是示例代码中的一个字段(id):

代码语言:javascript
复制
$visID = MyModel::orderBy('id', 'DESC')->pluck('id')->first();

我建议你改变上面的,以得到完整的模型。删除pluck,如果db有支持latest()created_at字段,则添加created_at

代码语言:javascript
复制
$exi = MyModel::latest()->first();

,您在正确的轨道上,也可以使用orderBy (Laravel的latest()只是用于相同事物的语法糖-看起来很整洁):

代码语言:javascript
复制
$exi = MyModel::orderBy('id', 'DESC')->first();

然后,而不是:

代码语言:javascript
复制
$exi= $visID;

查询行中的变量中已经有了最后一个模型。在传递到刀片之后,您拥有$exi中的所有数据,并且可以使用您希望的对象表示法:

代码语言:javascript
复制
<tr>
     <th>First Name:</th>
     <td>{{ $exi->first_name }}</td>
</tr>
// etc
票数 0
EN

Stack Overflow用户

发布于 2019-08-18 15:47:41

您只需提取一个值,而不是数组或多个值。

代码语言:javascript
复制
Model::orderBy('id', 'DESC')->pluck('**column name**','id')->first();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57545996

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档