<?php
/*
* This file is part of EC-CUBE
*
* Copyright(c) EC-CUBE CO.,LTD. All Rights Reserved.
*
* http://www.ec-cube.co.jp/
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Customize\Form\Type;
use Eccube\Common\EccubeConfig;
use Customize\Form\Type\Master\BankType;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Form\FormInterface;
use Symfony\Component\Form\FormView;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Validator\Constraints as Assert;
class BankInfoType extends AbstractType
{
/**
* @var array
*/
protected $config;
/**
* {@inheritdoc}
*
* BankType constructor.
*
* @param EccubeConfig $eccubeConfig
*/
public function __construct(EccubeConfig $eccubeConfig)
{
$this->config = $eccubeConfig;
}
/**
* {@inheritdoc}
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$options['bank_name_options']['required'] = $options['required'];
// required の場合は NotBlank も追加する
if ($options['required']) {
$options['bank_name_options']['constraints'] = array_merge([
new Assert\NotBlank([]),
], $options['bank_name_options']['constraints']);
}
if (!isset($options['options']['error_bubbling'])) {
$options['options']['error_bubbling'] = $options['error_bubbling'];
}
$builder
->add($options['bank_name_name'], BankType::class, array_merge_recursive($options['options'], $options['bank_name_options']))
;
$builder->setAttribute('bank_name_name', $options['bank_name_name']);
}
/**
* {@inheritdoc}
*/
public function buildView(FormView $view, FormInterface $form, array $options)
{
$builder = $form->getConfig();
$view->vars['bank_name_name'] = $builder->getAttribute('bank_name_name');
}
/**
* {@inheritdoc}
*/
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'options' => [],
'bank_name_options' => [
'constraints' => [],
'attr' => [
'class' => 'p-bank-name',
'placeholder' => 'common.bank_name',
],
],
'bank_name_name' => 'bank_name',
'error_bubbling' => false,
'inherit_data' => true,
'trim' => true,
]);
}
public function getBlockPrefix()
{
return 'bank';
}
}