laravel12/app/Exports/ProductsExport.php
2025-12-07 14:17:41 +09:00

36 lines
960 B
PHP

<?php
namespace App\Exports;
use App\Models\Product;
use Maatwebsite\Excel\Concerns\FromQuery;
use Maatwebsite\Excel\Concerns\ShouldAutoSize;
use Maatwebsite\Excel\Concerns\WithHeadings;
class ProductsExport implements FromQuery, WithHeadings, ShouldAutoSize
{
/**
* @return \Illuminate\Support\Collection
*/
public function query()
{
$q = Product::query()
->select('id', 'name', 'sku', 'quantity', 'price');
if (request()->filled('search')) {
$search = request('search');
$q->where('name', 'like', "%{$search}%");
if (request()->filled('sort') && request()->filled('order')) {
$sort = request('sort');
$order = request('order');
$q->orderBy($sort, $order);
}
}
return $q;
}
public function headings(): array
{
return ['ID', '상품명', 'SKU', '수량', '가격'];
}
}