【问题标题】:laravel generate PDF from bladelaravel 从刀片生成 PDF
【发布时间】:2018-05-21 02:30:42
【问题描述】:

我正在尝试以 pdf 格式下载我的页面,并且我一直按照本教程一步一步进行操作。我尝试使用示例数据来完成它并且它可以工作,但是当我尝试使用我自己的数据时,它不断给我 undefined $data3, $object, ..

但我已经在我的控制器中定义了它们:

测试控制器

     public function getTestdata($id){
           $user = PersonalInfo::find($id);
          $object = PersonalInfo::where('id',$id)->get();
        $object1 = AdditionalInformation::where('user_id',$id)->get(); 
         $data3=UserImage::where('user_id',$id)->get();
     return view('test',compact('id','object','object1','user','data3'));
 }

test.blade.php

<a href="{{  url('/pdf')  }}">Download PDF</a>
...
<th>
      @foreach($data3 as $currentUser)
      <img src="{{ url('images/' . $currentUser->name ) }}">
      @endforeach
 </th>
...
  @php
    $userFamily = $user->userFamily;
  @endphp
    <tr>
    <td><b>FAMILY Members</b></td>
      <td>
    @foreach($userFamily as $val)

    @if($val["meta_key"] == "relationshiplist")
    {{  $val["meta_value"]  }}  |
    @endif
        @endforeach
    </td>

下载PDF控制器:

public function fun_pdf(){
    $pdf = PDF::loadView('test'); //load view page
    return $pdf->download('test.pdf'); // download pdf file
}

路线:

Route::get('/pdf', 'pdfDownloadController@fun_pdf');
Route::get('/user/showtest/{id}/test1', 'testController@getTestData')->name('template');

我也尝试按照这个网站做,但它似乎也不起作用,而是它给了我未定义的 $id。 http://itsolutionstuff.com/post/laravel-5-generate-pdf-from-html-view-file-and-download-using-dompdfexample.html

如果可能的话,你们能否指导我如何生成 PDF 文件

【问题讨论】:

  • 哪个错误来了?

标签: php laravel pdf


【解决方案1】:

首先,你应该安装 Dompdf 插件https://github.com/barryvdh/laravel-dompdf

及其文档中的所有其他内容

我认为你应该像这样更新控制器并传递 id 参数,同时更改路由

    public function fun_pdf($id){
        $user = PersonalInfo::find($id);
        $object = PersonalInfo::where('id',$id)->get();
        $object1 = AdditionalInformation::where('user_id',$id)->get(); 
        $data3=UserImage::where('user_id',$id)->get();
        $data =[
            'id' => $id,
            'object' => $object,
            'object1' => $object1,
            'user' => $user,
            'data3' => $data3,
        ];

        $pdf = PDF::loadView('test',$data); //load view page
        return $pdf->download('test.pdf'); // download pdf file
    }

【讨论】:

  • 等等这不是和我的一样吗?我现在面临的问题是当我下载时,它返回给我 undefined $data3 并且可以查看 test.blade.php 所以问题可能出在我认为的 downloadPDFController
  • 刚刚更改了答案再次更新路线也用于传递ID
  • 我按照你的要求做了,我改变了视图,下载PDF 及其路径,Route::get('/pdf/{id}', 'pdfDownloadController@fun_pdf');但我收到此错误,解析错误:语法错误,意外的“图像”(T_STRING),期待“,”或“)”
  • 我应该在 test.blade.php 中全部更改为 $data 吗?
  • name ) }}"> 不知道是否正确试试这个
猜你喜欢
  • 1970-01-01
  • 2020-04-26
  • 2015-08-10
  • 2015-02-22
  • 1970-01-01
  • 2019-08-01
  • 2020-11-17
  • 2019-01-31
  • 1970-01-01
相关资源
最近更新 更多