src/Eccube/Controller/Admin/Setting/Shop/TradeLawController.php line 47

Open in your IDE?
  1. <?php
  2. /*
  3.  * This file is part of EC-CUBE
  4.  *
  5.  * Copyright(c) EC-CUBE CO.,LTD. All Rights Reserved.
  6.  *
  7.  * http://www.ec-cube.co.jp/
  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 Eccube\Controller\Admin\Setting\Shop;
  13. use Eccube\Controller\AbstractController;
  14. use Eccube\Event\EccubeEvents;
  15. use Eccube\Event\EventArgs;
  16. use Eccube\Form\Type\Admin\TradeLawType;
  17. use Eccube\Repository\TradeLawRepository;
  18. use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
  19. use Symfony\Component\Form\Extension\Core\Type\CollectionType;
  20. use Symfony\Component\HttpFoundation\Request;
  21. use Symfony\Component\Routing\Annotation\Route;
  22. class TradeLawController extends AbstractController
  23. {
  24.     protected TradeLawRepository $tradeLawRepository;
  25.     /**
  26.      * @param TradeLawRepository $tradeLawRepository
  27.      */
  28.     public function __construct(
  29.         TradeLawRepository $tradeLawRepository
  30.     ) {
  31.         $this->tradeLawRepository $tradeLawRepository;
  32.     }
  33.     /**
  34.      * 特定商取引法設定の初期表示・登録
  35.      *
  36.      * @Route("/%eccube_admin_route%/setting/shop/tradelaw", name="admin_setting_shop_tradelaw", methods={"GET", "POST"})
  37.      * @Template("@admin/Setting/Shop/tradelaw.twig")
  38.      *
  39.      * @param Request $request
  40.      */
  41.     public function index(Request $request)
  42.     {
  43.         $tradeLawDetails $this->tradeLawRepository->findBy([], ['sortNo' => 'ASC']);
  44.         $builder $this->formFactory->createBuilder();
  45.         $builder
  46.             ->add(
  47.                 'TradeLaws',
  48.                 CollectionType::class,
  49.                 [
  50.                     'entry_type' => TradeLawType::class,
  51.                     'data' => $tradeLawDetails,
  52.                 ]
  53.             );
  54.         $form $builder->getForm();
  55.         $form->handleRequest($request);
  56.         $event = new EventArgs(
  57.             [
  58.                 'TradeLaw' => $tradeLawDetails,
  59.             ],
  60.             $request
  61.         );
  62.         $form $builder->getForm();
  63.         $form->handleRequest($request);
  64.         if ($form->isSubmitted() && $form->isValid()) {
  65.             foreach ($form['TradeLaws'] as $child) {
  66.                 $TradeLaw $child->getData();
  67.                 $this->entityManager->persist($TradeLaw);
  68.             }
  69.             $this->entityManager->flush();
  70.             $this->addSuccess('admin.common.save_complete''admin');
  71.             $this->eventDispatcher->dispatch($eventEccubeEvents::ADMIN_SETTING_SHOP_TRADE_LAW_POST_COMPLETE);
  72.             return $this->redirectToRoute('admin_setting_shop_tradelaw');
  73.         }
  74.         $this->eventDispatcher->dispatch($eventEccubeEvents::ADMIN_SETTING_SHOP_TRADE_LAW_INDEX_COMPLETE);
  75.         return [
  76.             'form' => $form->createView(),
  77.             'tradeLawDetails' => $tradeLawDetails,
  78.         ];
  79.     }
  80. }