Eccube\Form\Type\Admin\PaymentRegisterType::buildForm PHP Method

buildForm() public method

public buildForm ( Symfony\Component\Form\FormBuilderInterface $builder, array $options )
$builder Symfony\Component\Form\FormBuilderInterface
$options array
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $app = $this->app;
        $builder->add('method', 'text', array('label' => '支払方法', 'required' => true, 'constraints' => array(new Assert\NotBlank())))->add('rule_min', 'money', array('label' => false, 'currency' => 'JPY', 'precision' => 0, 'constraints' => array(new Assert\Length(array('max' => $app['config']['int_len'])), new Assert\Regex(array('pattern' => "/^\\d+\$/u", 'message' => 'form.type.numeric.invalid')))))->add('rule_max', 'money', array('label' => false, 'currency' => 'JPY', 'precision' => 0, 'required' => false, 'constraints' => array(new Assert\Length(array('max' => $app['config']['int_len'])), new Assert\Regex(array('pattern' => "/^\\d+\$/u", 'message' => 'form.type.numeric.invalid')))))->add('payment_image_file', 'file', array('label' => 'ロゴ画像', 'mapped' => false, 'required' => false))->add('payment_image', 'hidden', array('required' => false))->add('charge_flg', 'hidden')->add('fix_flg', 'hidden')->addEventListener(FormEvents::POST_BIND, function ($event) {
            $form = $event->getForm();
            $ruleMax = $form['rule_max']->getData();
            $ruleMin = $form['rule_min']->getData();
            if (!empty($ruleMin) && !empty($ruleMax) && $ruleMax < $ruleMin) {
                $form['rule_min']->addError(new FormError('利用条件(下限)は' . $ruleMax . '円以下にしてください。'));
            }
        })->addEventListener(FormEvents::POST_SET_DATA, function (FormEvent $event) use($app) {
            $form = $event->getForm();
            /** @var \Eccube\Entity\Payment $Payment */
            $Payment = $event->getData();
            if (is_null($Payment) || $Payment->getChargeFlg() == 1) {
                $form->add('charge', 'money', array('label' => '手数料', 'currency' => 'JPY', 'precision' => 0, 'constraints' => array(new Assert\NotBlank(), new Assert\Length(array('max' => $app['config']['int_len'])), new Assert\Regex(array('pattern' => "/^\\d+\$/u", 'message' => 'form.type.numeric.invalid')))));
            } else {
                $form->add('charge', 'hidden');
            }
        });
    }