laravel 从刀片生成 PDF

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/47687340/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-14 17:03:36  来源:igfitidea点击:

laravel generate PDF from blade

phplaravelpdf

提问by Dkna

I am trying to download my page in pdf format and I have been following this tutorial step by step to do it. I tried using a sample data to do it and it work but when I try to use my own data it keep giving me undefined $data3, $object, ..

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

But I have already defined them already in my controller already:

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

testController

测试控制器

     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

测试刀片.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>

DownloadPDFController:

下载PDF控制器:

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

Route:

路线:

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

I also tried following this website to do but it does't seem to work as well, instead it gave me undefined $id. http://itsolutionstuff.com/post/laravel-5-generate-pdf-from-html-view-file-and-download-using-dompdfexample.html

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

If possible could you guys guide me on how to generate the PDF file

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

回答by Rahul Reghunath

For this first, you should install Dompdf plugin https://github.com/barryvdh/laravel-dompdf

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

and everything else in its documentation

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

I think you should update the controller like this and pass id parameter, change the route also

我认为你应该像这样更新控制器并传递 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
    }