<?php
namespace App\Controller\Shop;
use App\Entity\SearchProduct;
use App\Form\SearchProductType;
use App\Repository\ProductRepository;
use App\Repository\TagRepository;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
class ShopController extends AbstractController
{
/**
* Permet de faire le filtre des produits selon les critères donnés
*
* @Route("/shop/", name="shop")
* @param ProductRepository $productRepository
* @param TagRepository $tagRepository
* @param Request $request
* @return Response
*/
public function shop(ProductRepository $productRepository, TagRepository $tagRepository, Request $request):Response{
$products = $productRepository->findAll();
$search = new SearchProduct();
$form = $this->createForm(SearchProductType::class,$search);
$form->handleRequest($request);
if($form->isSubmitted() && $form->isValid()){
$products = $productRepository->findWithSearch($search);
}
return $this->render('home/shop/shop.html.twig',[
'products' => $products,
'search' => $form->createView(),
'search_header' => $form->createView(),
'tags' => $tagRepository->findAll()
]);
}
/**
* Permet de faire le filtre des produits selon les critères donnés search Header
*
* @Route("/header/serach/product/", name="shop_header_product_search")
* @return Response
*/
public function shop_header_searc():Response{
$search = new SearchProduct();
$form = $this->createForm(SearchProductType::class,$search);
return $this->render('partials/header_search.html.twig',[
'search_header' => $form->createView(),
'search_flag' => true
]);
}
}