app/Customize/Form/Extension/EntryTypeExtension.php line 23

Open in your IDE?
  1. <?php
  2. namespace Customize\Form\Extension;
  3. use Eccube\Form\Type\Front\EntryType;
  4. use Symfony\Component\Form\AbstractTypeExtension;
  5. use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
  6. use Symfony\Component\Form\FormBuilderInterface;
  7. use Customize\Form\Type\Master\ShopType;
  8. use Symfony\Component\Form\FormEvent;
  9. use Symfony\Component\Form\FormEvents;
  10. use Eccube\Form\Type\PostalType;
  11. use Eccube\Form\Type\AddressType;
  12. /**
  13.  * Class EntryTypeExtension
  14.  */
  15. class EntryTypeExtension extends AbstractTypeExtension
  16. {
  17.     /**
  18.      * {@inheritdoc}
  19.      */
  20.     public function buildForm(FormBuilderInterface $builder, array $options)
  21.     {
  22.         // $builder
  23.         //     ->add('shop', ShopType::class, [
  24.         //         'required' => true,
  25.         //         'placeholder' => '最後にご購入していただた店舗を選択',
  26.         //         'empty_data' => '0',
  27.         //     ]);
  28.         $builder
  29.             ->add('shop'ShopType::class, [
  30.                 'required' => true,
  31.                 'placeholder' => '最後にご購入していただいた店舗を選択',
  32.                 'empty_data' => '0',
  33.                 'query_builder' => function($er){
  34.                     return $er->createQueryBuilder('s')
  35.                         ->andWhere('s.id <> 1');
  36.                 },
  37.             ]);
  38.         $options $builder->get('postal_code')->getOptions();
  39.         $options['required'] = false;
  40.         $options['constraints'] = [];
  41.         $builder->add('postal_code'PostalType::class, $options);
  42.         $options $builder->get('address')->getOptions();
  43.         $options['required'] = false;
  44.         $builder->add('address'AddressType::class, $options);
  45.         // $builder->remove('address');
  46.         // $builder->remove('postal_code');
  47.         $builder->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) {
  48.             // $Customer = $event->getData();
  49.             // if ($Customer instanceof Customer && !$Customer->getId()) {
  50.                 $form $event->getForm();
  51.                 $form->add('user_policy_check'CheckboxType::class, [
  52.                     'required' => false,
  53.                     'label' => null,
  54.                     'mapped' => false,
  55.                     'constraints' => [],
  56.                 ]);
  57.             // }
  58.         }
  59.         );
  60.     }
  61.     public function getExtendedType()
  62.     {
  63.         return EntryType::class;
  64.     }
  65.     public static function getExtendedTypes(): iterable
  66.     {
  67.         return [EntryType::class];
  68.     }
  69. }