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所有,未經許可,不得轉載
你可能還喜歡