Laravel9 使用 barryvdh/laravel-dompdf 创建 PDF 文件
hi,我是温新,一名PHPer
本篇文章将学习怎么在 Laravel9 中使用 barryvdh/laravel-dompdf 来创建 pdf 文件。
第一步:安装 Laravel9 项目
composer create-project laravel/laravel la9study
第二步:配置数据库连接
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=la9study
DB_USERNAME=la9study
DB_PASSWORD=123456
第三步:填充数据
第一步:执行迁移文件
php artisan migrate
第二步:填充数据
php artisan tinker
User::factory()->count(100)->create()
第四步:安装 DomPDF 包
composer require barryvdh/laravel-dompdf
第五步:添加路由
<?php
// routes/web.php
use Illuminate\Support\Facades\Route;
Route::get('pdf', [\App\Http\Controllers\Test\PdfController::class, 'index']);
第六步:编写控制器方法
创建控制器
php artisan make:controller Test/PdfController
编写控制器方法
<?php
namespace App\Http\Controllers\Test;
use App\Http\Controllers\Controller;
use App\Models\User;
use Barryvdh\DomPDF\Facade\Pdf;
class PdfController extends Controller
{
    public function index()
    {
        $users = User::query()->where('id', '<', 10)->get();
        $data = [
            'title' =>  'Laravel9 创建 PDF 文件',
            'date'  =>  date('Y-m-d'),
            'users' =>  $users,
        ];
        // 创建 pdf 模板文件
        $pdf = Pdf::loadView('test.pdf.mypdf', $data);
        // 下载 pdf 文件
        return $pdf->download('users.pdf');
    }
}
第七步:创建模板文件
// views/test/pdf/mypdf.blade.php
<!DOCTYPE html>
<html>
<head>
    <title>Laravel 9 Create PDF File</title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-p1KAotb3W9ndluCsqePPYnjRm3c6abdnIjo0tQwYUv83VsbsYd43RuofnFAaDo0E" crossorigin="anonymous">
<body>
    <h1>{{ $title }}</h1>
    <p>{{ $date }}</p>
    <p>Laravel9 Crate PDF FILE</p>
    <table class="table">
        <tr>
            <th>ID</th>
            <th>Name</th>
            <th>Email</th>
        </tr>
        @foreach($users as $user)
            <tr>
                <td>{{ $user->id }}</td>
                <td>{{ $user->name }}</td>
                <td>{{ $user->email }}</td>
            </tr>
        @endforeach
    </table>
</body>
</html>
到这里,代码部分的功能就已经完成了,接下来就访问 URL 来下载 pdf 文件吧。
请登录后再评论