app/Plugin/MultiCategorySearch42/Controller/Block/MultiCategorySearchController.php line 43

Open in your IDE?
  1. <?php
  2. /*
  3.  * This file is part of MultiCategorySearch
  4.  *
  5.  * Copyright(c) Akira Kurozumi <info@a-zumi.net>
  6.  *
  7.  * https://a-zumi.net
  8.  *
  9.  * For the full copyright and license information, please view the LICENSE
  10.  * file that was distributed with this source code.
  11.  */
  12. namespace Plugin\MultiCategorySearch42\Controller\Block;
  13. use Eccube\Controller\AbstractController;
  14. use Eccube\Form\Type\SearchProductType;
  15. use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
  16. use Symfony\Component\HttpFoundation\Request;
  17. use Symfony\Component\HttpFoundation\RequestStack;
  18. use Symfony\Component\Routing\Annotation\Route;
  19. class MultiCategorySearchController extends AbstractController
  20. {
  21.     /**
  22.      * @var RequestStack
  23.      */
  24.     private RequestStack $requestStack;
  25.     public function __construct(
  26.         RequestStack $requestStack
  27.     ) {
  28.         $this->requestStack $requestStack;
  29.     }
  30.     /**
  31.      * @return array|void
  32.      *
  33.      * @Route("/block/multi_category_search/main", name="block_multi_category_search_form_main")
  34.      *
  35.      * @Template("Block/multi_category_search_form_main.twig")
  36.      */
  37.     public function main()
  38.     {
  39.         $request $this->requestStack->getMainRequest();
  40.         if (null === $request) {
  41.             return;
  42.         }
  43.         return $this->createSearchForm($request);
  44.     }
  45.     /**
  46.      * @return array|void
  47.      *
  48.      * @Route("/block/multi_category_search/side", name="block_multi_category_search_form_side")
  49.      *
  50.      * @Template("Block/multi_category_search_form_side.twig")
  51.      */
  52.     public function side()
  53.     {
  54.         $request $this->requestStack->getMainRequest();
  55.         if (null === $request) {
  56.             return;
  57.         }
  58.         return $this->createSearchForm($request);
  59.     }
  60.     /**
  61.      * @param Request $request
  62.      *
  63.      * @return array
  64.      */
  65.     private function createSearchForm(Request $request): array
  66.     {
  67.         $builder $this->formFactory->createNamedBuilder(''SearchProductType::class);
  68.         $builder->setAction($this->generateUrl('product_list'));
  69.         $builder->setMethod('GET');
  70.         $form $builder->getForm();
  71.         $form->handleRequest($request);
  72.         return [
  73.             'form' => $form->createView(),
  74.         ];
  75.     }
  76. }