src/Eccube/Util/FormUtil.php line 58

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\Util;
  13. use Symfony\Component\Form\FormInterface;
  14. class FormUtil
  15. {
  16.     /**
  17.      * formオブジェクトからviewDataを取得する.
  18.      *
  19.      * @param FormInterface $form
  20.      *
  21.      * @return array
  22.      */
  23.     public static function getViewData(FormInterface $form)
  24.     {
  25.         $viewData = [];
  26.         $forms $form->all();
  27.         if (empty($forms)) {
  28.             return $form->getViewData();
  29.         }
  30.         foreach ($forms as $key => $value) {
  31.             // choice typeは各選択肢もFormとして扱われるため再帰しない.
  32.             if ($value->getConfig()->hasOption('choices')) {
  33.                 $viewData[$key] = $value->getViewData();
  34.             } else {
  35.                 $viewData[$key] = self::getViewData($value);
  36.             }
  37.         }
  38.         return $viewData;
  39.     }
  40.     /**
  41.      * formオブジェクトにviewdataをsubmitし, マッピングした結果を返す.
  42.      *
  43.      * @param FormInterface $form
  44.      * @param $viewData
  45.      *
  46.      * @return mixed
  47.      */
  48.     public static function submitAndGetData(FormInterface $form$viewData)
  49.     {
  50.         $form->submit($viewData);
  51.         return $form->getData();
  52.     }
  53. }