Как применить экспорт PDF и Excel на Laravel 12?Php

Кемеровские программисты php общаются здесь
Anonymous
Как применить экспорт PDF и Excel на Laravel 12?

Сообщение Anonymous »

Во-первых, вам нужно поместить это в свой терминал в vscode. В моем случае проект про продукты. Вам просто нужно скопировать поток. Только не копируйте все целиком.

Код: Выделить всё

composer require barryvdh/laravel-dompdf
затем добавьте что-то подобное в свой контроллер (для меня это контроллер продукта)

Код: Выделить всё

use Barryvdh\DomPDF\Facade\Pdf;
use Symfony\Component\HttpFoundation\StreamedResponse;

public function exportPdf()
{
$products = Product::all();
$pdf = Pdf::loadView('product.pdf', compact('products'));
return $pdf->download('products.pdf');
}

public function exportCsv(): StreamedResponse
{
$headers = [
'Content-Type' => 'text/csv',
'Content-Disposition' => 'attachment; filename="products.csv"',
];

return response()->stream(function () {
$handle = fopen('php://output', 'w');
fputcsv($handle, ['Name', 'Price', 'Description']); // headers row

Product::chunk(100, function ($products) use ($handle) {
foreach ($products as $product) {
fputcsv($handle, [$product->name, $product->price, $product->description]);
}
});

fclose($handle);
}, 200, $headers);
}
затем добавьте в web.php

Код: Выделить всё

Route::get('product/export/pdf', [\App\Http\Controllers\ProductController::class, 'exportPdf'])
->middleware(['auth', 'verified'])
->name('product.export.pdf');

Route::get('product/export/csv', [\App\Http\Controllers\ProductController::class, 'exportCsv'])
->middleware(['auth', 'verified'])
->name('product.export.csv');
после этого создайте файл представления (php artisan make:view Product.pdf)

Код: Выделить всё



Products List


NamePriceDescription


@foreach ($products as $product)

{{ $product->name }}
{{ $product->price }}
{{ $product->description }}

@endforeach




затем, наконец, добавьте кнопку в индексный файл.
Экспортировать PDF
Экспорт CSV

Вернуться в «Php»