src/Form/Account/OwnerType.php line 15

Open in your IDE?
  1. <?php
  2. namespace App\Form\Account;
  3. use App\Entity\Account\Owner;
  4. use Symfony\Component\Form\AbstractType;
  5. use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
  6. use Symfony\Component\Form\Extension\Core\Type\TextType;
  7. use Symfony\Component\Form\FormBuilderInterface;
  8. use Symfony\Component\OptionsResolver\OptionsResolver;
  9. use Symfony\Component\Validator\Constraints\Length;
  10. use Symfony\Component\Validator\Constraints\NotBlank;
  11. use Symfony\Contracts\Translation\TranslatorInterface;
  12. class OwnerType extends AbstractType
  13. {
  14.     private TranslatorInterface $translatable;
  15.     public function __construct(
  16.         TranslatorInterface $translatable
  17.     ) {
  18.         $this->translatable $translatable;
  19.     }
  20.     public function buildForm(FormBuilderInterface $builder, array $options): void
  21.     {
  22.         $builder
  23.             ->add('companyName'TextType::class, [
  24.                 "label" => $this->translatable->trans('contact.label.company_name'),
  25.                 "constraints" => [
  26.                     new NotBlank([
  27.                         "message" => $this->translatable->trans('contact.validate.not_blank'),
  28.                     ]),
  29.                     new Length([
  30.                         "max" => 64,
  31.                         "maxMessage" => $this->translatable->trans('contact.validate.length_over'),
  32.                     ])
  33.                 ]
  34.             ])
  35.             ->add('companyKana'TextType::class, [
  36.                 "label" => $this->translatable->trans('contact.label.company_kana'),
  37.                 "constraints" => [
  38.                     new NotBlank([
  39.                         "message" => $this->translatable->trans('contact.validate.not_blank'),
  40.                     ]),
  41.                     new Length([
  42.                         "max" => 128,
  43.                         "maxMessage" => $this->translatable->trans('contact.validate.length_over'),
  44.                     ])
  45.                 ]
  46.             ])
  47.             ->add('managerName'TextType::class, [
  48.                 "label" => $this->translatable->trans('contact.label.manager_name'),
  49.                 "required" => false,
  50.                 "constraints" => [
  51.                     new Length([
  52.                         "max" => 48,
  53.                         "maxMessage" => $this->translatable->trans('contact.validate.length_over'),
  54.                     ])
  55.                 ]
  56.             ])
  57.             ->add('representativeName'TextType::class, [
  58.                 "label" => $this->translatable->trans('contact.label.representative_name'),
  59.                 "constraints" => [
  60.                     new NotBlank([
  61.                         "message" => $this->translatable->trans('contact.validate.not_blank'),
  62.                     ]),
  63.                     new Length([
  64.                         "max" => 32,
  65.                         "maxMessage" => $this->translatable->trans('contact.validate.length_over'),
  66.                     ])
  67.                 ]
  68.             ])
  69.             ->add('representativeKana'TextType::class, [
  70.                 "label" => $this->translatable->trans('contact.label.representative_kana'),
  71.                 "constraints" => [
  72.                     new NotBlank([
  73.                         "message" => $this->translatable->trans('contact.validate.not_blank'),
  74.                     ]),
  75.                     new Length([
  76.                         "max" => 32,
  77.                         "maxMessage" => $this->translatable->trans('contact.validate.length_over'),
  78.                     ])
  79.                 ]
  80.             ])
  81.             ->add('chargerName'TextType::class, [
  82.                 "label" => $this->translatable->trans('contact.label.charger_name'),
  83.                 "constraints" => [
  84.                     new NotBlank([
  85.                         "message" => $this->translatable->trans('contact.validate.not_blank'),
  86.                     ]),
  87.                     new Length([
  88.                         "max" => 32,
  89.                         "maxMessage" => $this->translatable->trans('contact.validate.length_over'),
  90.                     ])
  91.                 ]
  92.             ])
  93.             ->add('address'TextType::class, [
  94.                 "label" => $this->translatable->trans('contact.label.address'),
  95.                 "constraints" => [
  96.                     new NotBlank([
  97.                         "message" => $this->translatable->trans('contact.validate.not_blank'),
  98.                     ]),
  99.                     new Length([
  100.                         "max" => 255,
  101.                         "maxMessage" => $this->translatable->trans('contact.validate.length_over'),
  102.                     ])
  103.                 ]
  104.             ])
  105.             ->add('url'TextType::class, [
  106.                 "label" => $this->translatable->trans('contact.label.url'),
  107.                 "constraints" => [
  108.                     new NotBlank([
  109.                         "message" => $this->translatable->trans('contact.validate.not_blank'),
  110.                     ]),
  111.                     new Length([
  112.                         "max" => 255,
  113.                         "maxMessage" => $this->translatable->trans('contact.validate.length_over'),
  114.                     ])
  115.                 ]
  116.             ])
  117.             ->add('phone'TextType::class, [
  118.                 "label" => $this->translatable->trans('contact.label.phone'),
  119.                 "constraints" => [
  120.                     new NotBlank([
  121.                         "message" => $this->translatable->trans('contact.validate.not_blank'),
  122.                     ]),
  123.                     new Length([
  124.                         "max" => 16,
  125.                         "maxMessage" => $this->translatable->trans('contact.validate.length_over'),
  126.                     ])
  127.                 ]
  128.             ])
  129.         ;
  130.         if(true === $options['add_status']) {
  131.             $builder->add('status'ChoiceType::class, [
  132.                 "label" => $this->translatable->trans('contact.label.status'),
  133.                 "choices" => array_flip(Owner::getStatusArray()),
  134.             ]);
  135.         }
  136.     }
  137.     public function configureOptions(OptionsResolver $resolver): void
  138.     {
  139.         $resolver->setDefaults([
  140.             'data_class' => Owner::class,
  141.             'add_status' => false
  142.         ]);
  143.     }
  144. }