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 文件吧。
请登录后再评论