Как применить экспорт 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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