25 lines
799 B
PHP
25 lines
799 B
PHP
<?php
|
|
|
|
namespace Krzysiej\RyobiCrawler\Controller;
|
|
|
|
use Krzysiej\RyobiCrawler\Models\Product;
|
|
use Symfony\Component\HttpFoundation\Response;
|
|
use Symfony\Component\Routing\Attribute\Route;
|
|
|
|
final class CategoryController extends BaseController
|
|
{
|
|
#[Route('/category/{category}', name: 'app_category')]
|
|
public function __invoke(string $category): Response
|
|
{
|
|
$products = Product::with('price')
|
|
->selectRaw('products.*')
|
|
->distinct('products.id')
|
|
->fromRaw('products, json_each(products.categories)')
|
|
->whereRaw('json_each.value = ?', [$category])
|
|
->orderByDesc('starred')
|
|
->orderByDesc('created_by')
|
|
->get();
|
|
return $this->render('productList.html.twig', ['products' => $products]);
|
|
}
|
|
}
|