<?php
namespace Customize\Form\Extension;
use Eccube\Form\Type\Front\EntryType;
use Symfony\Component\Form\AbstractTypeExtension;
use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
use Symfony\Component\Form\FormBuilderInterface;
use Customize\Form\Type\Master\ShopType;
use Symfony\Component\Form\FormEvent;
use Symfony\Component\Form\FormEvents;
use Eccube\Form\Type\PostalType;
use Eccube\Form\Type\AddressType;
/**
* Class EntryTypeExtension
*/
class EntryTypeExtension extends AbstractTypeExtension
{
/**
* {@inheritdoc}
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
// $builder
// ->add('shop', ShopType::class, [
// 'required' => true,
// 'placeholder' => '最後にご購入していただた店舗を選択',
// 'empty_data' => '0',
// ]);
$builder
->add('shop', ShopType::class, [
'required' => true,
'placeholder' => '最後にご購入していただいた店舗を選択',
'empty_data' => '0',
'query_builder' => function($er){
return $er->createQueryBuilder('s')
->andWhere('s.id <> 1');
},
]);
$options = $builder->get('postal_code')->getOptions();
$options['required'] = false;
$options['constraints'] = [];
$builder->add('postal_code', PostalType::class, $options);
$options = $builder->get('address')->getOptions();
$options['required'] = false;
$builder->add('address', AddressType::class, $options);
// $builder->remove('address');
// $builder->remove('postal_code');
$builder->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) {
// $Customer = $event->getData();
// if ($Customer instanceof Customer && !$Customer->getId()) {
$form = $event->getForm();
$form->add('user_policy_check', CheckboxType::class, [
'required' => false,
'label' => null,
'mapped' => false,
'constraints' => [],
]);
// }
}
);
}
public function getExtendedType()
{
return EntryType::class;
}
public static function getExtendedTypes(): iterable
{
return [EntryType::class];
}
}