src/Form/OrganizationType.php line 42

Open in your IDE?
  1. <?php
  2. namespace App\Form;
  3. use App\Entity\Organization;
  4. use App\Entity\UserType;
  5. use Symfony\Bridge\Doctrine\Form\Type\EntityType;
  6. use Symfony\Component\Form\AbstractType;
  7. use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
  8. use Symfony\Component\Form\Extension\Core\Type\EmailType;
  9. use Symfony\Component\Form\Extension\Core\Type\TextType;
  10. use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
  11. use Symfony\Component\Form\FormBuilderInterface;
  12. use Symfony\Component\OptionsResolver\OptionsResolver;
  13. use Symfony\Component\Validator\Constraints\NotBlank;
  14. use Symfony\Component\Validator\Constraints\Regex;
  15. class OrganizationType extends AbstractType
  16. {
  17.     public function buildForm(FormBuilderInterface $builder, array $options)
  18.     {
  19.         $builder
  20.             ->add('name'null, [
  21.                 'attr' => [
  22.                     'placeholder' => 'select.name',
  23.                 ],
  24.                 'label' => 'Organization.name',
  25.                 // 'required => true,
  26.                 'empty_data' => '',
  27.                 'validation_groups' => ['valid-value'],
  28.             ])
  29.             ->add('description',null, [
  30.                 'attr' => [
  31.                     'placeholder' => 'select.organizationDescription',
  32.                 ],
  33.                 // 'required => true,
  34.                 'validation_groups' => ['valid-value'],
  35.             ])
  36.             ->add('userType'EntityType::class, [
  37.                 'class' => UserType::class,
  38.                 'query_builder' => function (\App\Repository\UserTypeRepository$er) {
  39.                     return $er->createQueryBuilder('c')
  40.                         ->orderBy('c.type''ASC');
  41.                 },
  42.                 'label' => 'Organization.type',
  43.                 // 'required => true,
  44.                 'choice_translation_domain' => 'messages',
  45.                 'validation_groups' => ['valid-value'],
  46.             ])
  47.             ->add('cuit'TextType::class, [
  48.                 'attr' => [
  49.                     'data-cleave' => json_encode(['blocks' => [281], 'delimiter' => '-']),
  50.                     'class' => 'form-control',
  51.                     'placeholder' => '01-12345678-9',
  52.                     'autocomplete' => 'off',
  53.                     'maxlength' => 13,
  54.                     'minlength' => 13,
  55.                 ],
  56.                 'label' => 'Organization.cuit',
  57.                 // 'required => true,
  58.                 'constraints' => [
  59.                     new Regex('/\d{2}\-\d{8}\-\d/'),
  60.                 ],
  61.                 'validation_groups' => ['valid-value'],
  62.             ])
  63.          ->add('type'TextType::class, [
  64.                 // 'required => true,
  65.                 'empty_data' => '',
  66.                 'validation_groups' => ['valid-value'],
  67.         ])
  68.             ->add('email'EmailType::class, [
  69.                 'required' => false,
  70.                 'attr' => [
  71.                     'placeholder' => 'select.organizationEmail',
  72.                 ],
  73.                 'validation_groups' => ['valid-value'],
  74.             ])
  75.             ->add('businessName'TextType::class, [
  76.                 // 'required => true,
  77.                 'attr' => [
  78.                     'placeholder' => 'select.businessName',
  79.                 ],
  80.                 'validation_groups' => ['valid-value'],
  81.                 "label" => "Organization.businessName"
  82.             ])
  83.             ->add('phone'TextType::class, [
  84.                 'required' => false,
  85.                 'attr' => [
  86.                     'placeholder' => 'select.phone',
  87.                 ],
  88.                 'label' => 'Organization.phone'
  89.             ])
  90.             ->add('activity'null, [
  91.                 'label' => 'Form.activityLabel',
  92.                 'attr' => [ 'placeholder' => 'select.activity']
  93.             ])
  94.             ->add('address'TextType::class, [
  95.                 'required' => false,
  96.                 'attr' => [
  97.                     'data-selectize'=>'{"valueField":"id","labelField":"name", "searchField":"name", "delimiter": "|"}',
  98.                     'class' => 'filters selectize geocode','placeholder' => 'select.addressChoice' ],
  99.                 'label' => 'Form.addressLabel',
  100.             ])
  101.             ->add('isProducer'CheckboxType::class, [
  102.                 'required' => false,
  103.                 'label' => 'Organization.isProducer',
  104.             ])
  105.             ;
  106.     }
  107.     public function configureOptions(OptionsResolver $resolver)
  108.     {
  109.         $resolver->setDefaults([
  110.             'data_class' => Organization::class,
  111.             'validation_groups' => ['valid-value'],
  112.         ]);
  113.     }
  114. }