- implement DTO for product and modify productImageDTO. - add products resources and collection.
32 lines
849 B
PHP
32 lines
849 B
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Data\ProductDTO;
|
|
use App\Http\Requests\CreateProductRequest;
|
|
use App\Http\Resources\ProductResource;
|
|
use App\Models\Product;
|
|
use Illuminate\Http\Request;
|
|
|
|
class ProductController extends Controller
|
|
{
|
|
public function index()
|
|
{
|
|
$paginator = Product::query()->with(['category:id,name,slug', 'images:id,path,product_id'])->paginate();
|
|
$paginatedDtos = $paginator->through(fn ($product) => ProductDTO::fromModel($product));
|
|
|
|
return ProductResource::collection($paginatedDtos);
|
|
}
|
|
|
|
public function store(CreateProductRequest $request)
|
|
{
|
|
return Product::create($request->validated());
|
|
}
|
|
|
|
public function show(Product $product) {}
|
|
|
|
public function update(Request $request, Product $product) {}
|
|
|
|
public function destroy(Product $product) {}
|
|
}
|