app/Customize/Controller/CategoryController.php line 35

Open in your IDE?
  1. <?php
  2. namespace Customize\Controller;
  3. use Customize\Repository\CategoryRepository;
  4. use Eccube\Controller\AbstractController;
  5. use Eccube\Form\Type\SearchProductType;
  6. use Knp\Component\Pager\PaginatorInterface;
  7. use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
  8. use Symfony\Component\HttpFoundation\Request;
  9. use Symfony\Component\Routing\Annotation\Route;
  10. class CategoryController extends AbstractController
  11. {
  12.     /**
  13.      * @var CategoryRepository
  14.      */
  15.     protected $categoryRepository;
  16.     /**
  17.      * CategoryController constructor.
  18.      *
  19.      * @param CategoryRepository $categoryRepository
  20.      */
  21.     public function __construct(
  22.         CategoryRepository $categoryRepository
  23.     ) {
  24.         $this->categoryRepository $categoryRepository;
  25.     }
  26.     /**
  27.      * @Route("/products/category", name="product_category", methods={"GET"})
  28.      * @Template("Product/category.twig")
  29.      */
  30.     public function index(Request $requestPaginatorInterface $paginator)
  31.     {
  32.         if ($request->getMethod() === 'GET') {
  33.             $request->query->set('pageno'$request->query->get('pageno'''));
  34.         }
  35.         $builder $this->formFactory->createNamedBuilder(''SearchProductType::class);
  36.         if ($request->getMethod() === 'GET') {
  37.             $builder->setMethod('GET');
  38.         }
  39.         $searchForm $builder->getForm();
  40.         $searchForm->handleRequest($request);
  41.         $searchData $searchForm->getData();
  42.         $query $this->categoryRepository->getSearchData($searchData);
  43.         $pagination $paginator->paginate(
  44.             $query,
  45.             !empty($searchData['pageno']) ? $searchData['pageno'] : 1,
  46.             !empty($searchData['disp_number']) ? $searchData['disp_number']->getId() : $this->productListMaxRepository->findOneBy([], ['sort_no' => 'ASC'])->getId()
  47.         );
  48.         return [
  49.             'pagination' => $pagination,
  50.             'search_form' => $searchForm->createView(),
  51.         ];
  52.     }
  53. }