Laravel 6从Scratch的View Example Tutorial中生成PDF

Laravel 6从视图示例生成PDF教程从头开始是今天的主题。如果您想了解基本的laravel功能,请查看我的文章Laravel 6 Crud Example From Scratch。对于此示例,我们使用Dompdf库。 Dompdf是一个HTML到PDF转换器dompdf(大多数)是符合CSS 2.1的HTML布局和用PHP语言编写的渲染引擎。

它是样式驱动的渲染器:它将下载和读取外部样式表,内联样式标记以及各个HTML元素的所有样式属性。它还支持大多数表示HTML属性。

内容概述

  • 1 Laravel 6从视图生成PDF
  • 2步骤:1下载laravel-dompdf软件包
  • 3步骤:2配置包laravel 6应用程序
  • 4步骤:3创建布局刀片文件
  • 5步骤4:创建模型和迁移文件
  • 6步骤5:创建控制器和路由
  • 7步骤:6创建表单刀片文件以输入数据
  • 8步骤7:将数据存储在数据库中
  • 9步骤:8创建用于显示数据的视图文件。
  • 10步骤:9创建下载pdf文件的路线
  • 11步骤:10创建pdf.blade.php文件来设计我们的pdf
  • 12步骤:11编写控制器功能以下载PDF
  • 13结论

Laravel 6从视图生成PDF

如果您使用的是旧版本的Laravel,请查看如何在Laravel 5中生成PDF教程。

步骤:1下载laravel-dompdf包

键入以下命令以安装laravel-dompdf软件包。

composer require barryvdh/laravel-dompdf
➜  laravel6 git:(master) composer require barryvdh/laravel-dompdf Using version ^0.8.5 for barryvdh/laravel-dompdf ./composer.json has been updated Loading composer repositories with package information Updating dependencies (including require-dev) Package operations: 5 installs, 0 updates, 0 removals   - Installing sabberworm/php-css-parser (8.3.0): Downloading (100%)   - Installing phenx/php-svg-lib (v0.3.3): Downloading (100%)   - Installing phenx/php-font-lib (0.5.1): Downloading (100%)   - Installing dompdf/dompdf (v0.8.3): Downloading (100%)   - Installing barryvdh/laravel-dompdf (v0.8.5): Downloading (100%) dompdf/dompdf suggests installing ext-imagick (Improves image processing performance) dompdf/dompdf suggests installing ext-gmagick (Improves image processing performance) Writing lock file Generating optimized autoload files > IlluminateFoundationComposerScripts::postAutoloadDump > @php artisan package:discover --ansi Discovered Package: barryvdh/laravel-dompdf Discovered Package: facade/ignition Discovered Package: fideloper/proxy Discovered Package: laravel/tinker Discovered Package: laravel/ui Discovered Package: nesbot/carbon Discovered Package: nunomaduro/collision Package manifest generated successfully.

步骤:2配置包laravel 6应用程序

所以转到config >> app.php并添加以下配置。

'providers' => (     ....     BarryvdhDomPDFServiceProvider::class, ), 'aliases' => (     ....     'PDF' => BarryvdhDomPDFFacade::class, ),

这里我们为我们的应用程序注册一个PDF寄存器提供程序,并为它设置别名。所以当我们需要创建PDF时,我们需要将它包含在我们的命名空间中,比如

use PDF;

然后,我们实例化一个PDF类并使用其API进一步增强生成的PDF文件。

步骤:3创建布局刀片文件

在资源>> views文件夹中,创建一个名为layout.blade.php的新文件。

              Laravel 6 CRUD示例    

    
@yield( '内容')

第4步:创建模型和迁移文件

我们将使用以下命令创建模型和迁移文件。

php artisan make:model Disneyplus -m

现在,转到(timestamp).create_disneypluses_table.php文件并添加列。

public function up() {         Schema::create('disneypluses', function (Blueprint $table) {             $table->bigIncrements('id');             $table->string('show_name');             $table->string('series');             $table->string('lead_actor');             $table->timestamps();         }); }

现在,使用以下命令迁移数据库。

php artisan migrate

第5步:创建控制器和路由

下一步是创建DisneyplusController.php文件。

php artisan make:controller DisneyplusController

现在,在routes >> web.php文件中添加两个路由。

// web.php  Route::get('disneyplus', 'DisneyController@create')->name('disneyplus.create'); Route::post('disneyplus', 'DisneyController@store')->name('disneyplus.store');

现在,在DisneyplusController.php文件中创建两个方法。

步骤:6创建表单刀片文件以输入数据

现在,在views文件夹中,创建一个名为form.blade.php文件的文件。添加以下代码。

@extends('layout')  @section('content')  
Add Disneyplus Shows
@if ($errors->any())
    @foreach ($errors->all() as $error)
  • {{ $error }}
  • @endforeach

@endif
@csrf
@endsection

第7步:将数据存储在数据库中

现在,我们将在DisneyplusController.php文件中编写这两个函数。

validate((             'show_name' => 'required|max:255',             'series' => 'required|max:255',             'lead_actor' => 'required|max:255',         ));         Disneyplus::create($validatedData);             return redirect('/disneyplus')->with('success', 'Disney Plus Show is successfully saved');     } } 

因此,在上面的文件中,首先,我们已经显示了表单文件,然后在store函数中,我们检查验证然后将数据存储到数据库中。

另外,在Disneyplus.php模型文件中添加可填写字段。

现在,转到这条路线:http://laravel6.test/disneyplus或http:// localhost:8000 / disneyplus

你会看到一个表格。尝试保存数据,如果代码中的所有内容都正确,那么您将在数据库中看到一个条目。

步骤:8创建用于显示数据的视图文件。

在创建视图文件之前,我们需要在web.php中添加一个路由。

// web.php  Route::get('disneyplus/list', 'DisneyplusController@index')->name('disneyplus.index');

现在,创建一个名为list.blade.php文件的视图文件。添加以下代码。

@extends('layout') @section('content')      @foreach($shows as $show)          @endforeach   
ID Show Name Series Lead Actor Action
{{$show->id}} {{$show->show_name}} {{$show->series}} {{$show->lead_actor}}
@endsection

现在,在DisneyplusController.php文件的index()函数中添加代码。

public function index() {         $shows = Disneyplus::all();          return view('list', compact('shows')); }

现在,转到http://laravel6.test/disneyplus/list或http:// localhost:8000 / disneyplus / list

您将看到节目列表。

步骤:9创建下载pdf文件的路径

在路由文件中添加以下代码。

// web.php  Route::get('/downloadPDF/{id}','DisneyplusController@downloadPDF');

现在,更新list.blade.php文件并添加下载PDF链接。

@extends('layout') @section('content')      @foreach($shows as $show)          @endforeach   
ID Show Name Series Lead Actor Action
{{$show->id}} {{$show->show_name}} {{$show->series}} {{$show->lead_actor}} id)}}">Download PDF
@endsection

步骤:10创建pdf.blade.php文件来设计我们的pdf

您可以创建新的DOMPDF实例并加载HTML字符串,文件或刀片视图名称。您可以将其保存到文件或流中。

好的,在views文件夹中,创建一个名为pdf.blade.php文件的文件,并添加以下代码。

                 

        
Show Name Series Lead Actor
{{$show->show_name}} {{$show->series}} {{$show->lead_actor}}

我们创建了一个简单的表格,它将在PDF中生成。

步骤:11编写控制器功能以下载PDF

在DisneyplusController.php文件中编写以下代码。

// DisneyplusController.php  public function downloadPDF($id) {         $show = Disneyplus::find($id);         $pdf = PDF::loadView('pdf', compact('show'));                  return $pdf->download('disney.pdf'); }

现在,转到http://laravel6.test/disneyplus/list或http:// localhost:8000 / disneyplus / list,然后单击Download PDF链接。

您将看到它下载PDF文件并打开该PDF,您将看到该表包含显示列表。

结论

这是Laravel 6 Generate PDF的简单示例。最后,我们关于如何在Laravel 6中生成PDF的教程已经结束。

资讯来源:由0x资讯编译自APPDIVIDEND,版权归作者Krunal所有,未经许可,不得转载
你可能还喜欢