Код: Выделить всё
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);
}
Код: Выделить всё
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');
Код: Выделить всё
Products List
NamePriceDescription
@foreach ($products as $product)
{{ $product->name }}
{{ $product->price }}
{{ $product->description }}
@endforeach
Экспортировать PDF
Экспорт CSV
Мобильная версия