Bu yazıda, Laravel 10'da görünümden PDF dosyası oluşturma konusunu ele alacağız. Laravel 10'da PDF dosyası oluşturma konusunda bir sorununuz varsa, basit bir çözümle örnek vereceğim.
Laravel 10'da bir PDF dosyası nasıl oluşturulacağına dair basit bir örnek sunacağım. Laravel 10'da bir PDF dosyası oluşturmak için DomPDF adlı composer paketini kullanacağız. Aşağıdaki adımları takip ederek basit bir PDF dosyası elde edebilirsiniz.
Adım 1: Laravel 10'ı Yükleyin
Bu adım zorunlu değildir; ancak henüz bir Laravel uygulaması oluşturmadıysanız, aşağıdaki komutu çalıştırarak devam edebilirsiniz:
composer create-project laravel/laravel example-app
Adım 2: DomPDF Paketini Yükleyin
Sonraki adımda, DomPDF paketini aşağıdaki composer komutunu kullanarak yükleyeceğiz:
composer require barryvdh/laravel-dompdf
Adım 3: Controller Oluşturma
Bu adımda, PDFController adında bir controller oluşturacağız ve generatePDF() adında bir fonksiyon içerisine PDF oluşturma kodunu yazacağız. İşte controller'ı oluşturmak için kullanılacak komut:
php artisan make:controller PDFController
PDFController içerisinde, kullanıcılar tablosundan verileri alacak ve bu verileri PDF dosyasında görüntüleyeceğiz. Aşağıdaki tinker komutunu kullanarak kullanıcılar tablosuna bazı sahte veriler ekleyebilirsiniz:
php artisan tinker
User::factory()->count(10)->create()
Şimdi, controller dosyasındaki kodu güncelleyelim.
app/Http/Controllers/PDFController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\User;
use PDF;
class PDFController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function generatePDF()
{
$users = User::get();
$data = [
'title' => 'Welcome',
'date' => date('m/d/Y'),
'users' => $users
];
$pdf = PDF::loadView('myPDF', $data);
return $pdf->download('download.pdf');
}
}
Adım 4: Route Eklemek
Daha sonra, routes/web.php dosyasını açın ve içindeki kodu güncelleyin.
routes/web.php
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\PDFController;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
Route::get('generate-pdf', [PDFController::class, 'generatePDF']);
Adım 5: Görünüm Dosyası Oluşturma
Son adımda, myPDF.blade.php(resources/views/myPDF.blade.php) adında bir görünüm dosyası oluşturalım ve aşağıdaki kodu ekleyelim:
resources/views/myPDF.blade.php
<!DOCTYPE html>
<html>
<head>
<title>Laravel 10 Generate PDF Example</title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
</head>
<body>
<h1>{{ $title }}</h1>
<p>{{ $date }}</p>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua.</p>
<table class="table table-bordered">
<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>
Laravel Uygulamasını Çalıştırma:
Gerekli tüm adımlar tamamlandı, şimdi aşağıdaki komutu yazıp giriş yaparak Laravel uygulamasını çalıştırmanız gerekiyor:
php artisan serve
Web tarayıcınıza gidin, verilen URL'yi yazın ve uygulama çıktısını görüntüleyin:
