app/Plugin/SoftbankPayment42/Controller/Admin/ConfigController.php line 39

Open in your IDE?
  1. <?php
  2. namespace Plugin\SoftbankPayment42\Controller\Admin;
  3. use Eccube\Controller\AbstractController;
  4. use Plugin\SoftbankPayment42\Form\Type\Admin\SbpsConfigType;
  5. use Plugin\SoftbankPayment42\Repository\ConfigRepository;
  6. use Plugin\SoftbankPayment42\Service\WebCvsApiService;
  7. use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
  8. use Symfony\Component\HttpFoundation\RedirectResponse;
  9. use Symfony\Component\HttpFoundation\Request;
  10. use Symfony\Component\Routing\Annotation\Route;
  11. class ConfigController extends AbstractController
  12. {
  13.     /**
  14.      * @var ConfigRepository
  15.      */
  16.     private $configRepository;
  17.     private $webCvsApiService;
  18.     public function __construct(
  19.         ConfigRepository $configRepository,
  20.         WebCvsApiService $webCvsApiService
  21.     )
  22.     {
  23.         $this->configRepository $configRepository;
  24.         $this->webCvsApiService $webCvsApiService;
  25.     }
  26.     /**
  27.      * @Route("/%eccube_admin_route%/softbank_payment42/config", name="softbank_payment42_admin_config")
  28.      * @Template("@SoftbankPayment42/admin/config.twig")
  29.      * 
  30.      * @param Request $request
  31.      * @return array|RedirectResponse
  32.      */
  33.     public function index(Request $request)
  34.     {
  35.         $Config $this->configRepository->get();
  36.         $webCvsApiConfig $this->webCvsApiService->getWebCvsApiConfig();
  37.         $form $this->createForm(SbpsConfigType::class, [
  38.             'config' => $Config,
  39.             'webcvsapi' => $webCvsApiConfig
  40.         ]);
  41.         $form['webcvsapi']['enable_webcvstype']->setData($webCvsApiConfig->getEnableWebcvstypeAsArray());
  42.         $form->handleRequest($request);
  43.         if ($form->isSubmitted() && $form->isValid()) {
  44.             $data $form->getData();
  45.             $Config $data['config'];
  46.             $webCvsApiConfig $data['webcvsapi'];
  47.             $webCvsApiConfig->setEnableWebcvstypeByArray($form['webcvsapi']['enable_webcvstype']->getData());
  48.             $cvsPayDataConfigs $webCvsApiConfig->getCvsPayDataConfigs();
  49.             foreach ($cvsPayDataConfigs as $one) {
  50.                 $one->setParent($webCvsApiConfig);
  51.             }
  52.             $this->entityManager->persist($Config);
  53.             $this->entityManager->persist($webCvsApiConfig);
  54.             $this->entityManager->flush();
  55.             $this->addSuccess('登録しました。''admin');
  56.             return $this->redirectToRoute('softbank_payment42_admin_config');
  57.         }
  58.         return [
  59.             'form' => $form->createView(),
  60.             'webCvsApiConfig' => $webCvsApiConfig,
  61.         ];
  62.     }
  63. }