src/Form/Candidate/ProfessionalProfileRegistrationType.php line 38

Open in your IDE?
  1. <?php
  2. namespace App\Form\Candidate;
  3. use App\Entity\BranchActivity;
  4. use App\Entity\Capacity;
  5. use App\Entity\CityType;
  6. use App\Entity\ContactReason;
  7. use App\Entity\HealthExerciseMode;
  8. use App\Entity\HealthSpeciality;
  9. use App\Entity\LivingEnvironment;
  10. use App\Entity\ProfessionalProfile;
  11. use App\Entity\ProfessionalType;
  12. use App\Entity\ProjectSituationStatus;
  13. use App\Entity\Region;
  14. use App\Entity\TypeResearch;
  15. use App\Form\Front\KidType;
  16. use App\Form\Front\ProjectLeaderType;
  17. use App\Form\UploadDocumentType;
  18. use Symfony\Component\Form\AbstractType;
  19. use Symfony\Bridge\Doctrine\Form\Type\EntityType;
  20. use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
  21. use Symfony\Component\Form\Extension\Core\Type\CollectionType;
  22. use Symfony\Component\Form\Extension\Core\Type\SubmitType;
  23. use Symfony\Component\Form\Extension\Core\Type\TextareaType;
  24. use Symfony\Component\Form\Extension\Core\Type\TextType;
  25. use Symfony\Component\Form\Extension\Core\Type\UrlType;
  26. use Symfony\Component\Form\FormBuilderInterface;
  27. use Symfony\Component\OptionsResolver\OptionsResolver;
  28. class ProfessionalProfileRegistrationType extends AbstractType
  29. {
  30.     public function buildForm(FormBuilderInterface $builder, array $options): void
  31.     {
  32.         $builder
  33.             ->add('professionalType'EntityType::class, ['class' => ProfessionalType::class, 'multiple' => false,
  34.                 'required'=> true'expanded' => false'label' => 'myprofile''choice_label' => 'label',
  35.                 'query_builder' => function($er) {
  36.                     return $er->createQueryBuilder('a')
  37.                         ->where('a.active = :active')
  38.                         ->setParameter('active'true)
  39.                         ;
  40.                 }
  41.             ])
  42.             ->add('otherProfessionalType'TextType::class, ['label' => 'form.tospecify'])
  43.             ->add('branches',
  44.                 EntityType::class,
  45.                 [
  46.                     'class' => BranchActivity::class,
  47.                     'multiple' => true,
  48.                     'expanded' => true,
  49.                     'label' => 'branch.titlemy',
  50.                     'choice_label' => 'label',
  51.                     'required'=> false,
  52.                     'query_builder' => function($er) {
  53.                         return $er->createQueryBuilder('a')
  54.                             ->addOrderBy('a.position''ASC')
  55.                             ->addOrderBy('a.label''ASC')
  56.                             ;
  57.                     }
  58.                 ]
  59.             )
  60.             ->add('otherBranche'TextType::class, ['label' => 'form.tospecify'])
  61.             ->add('searchCapacities',
  62.                 EntityType::class,
  63.                 [
  64.                     'class' => Capacity::class,
  65.                     'multiple' => true,
  66.                     'expanded' => true,
  67.                     'label' => 'professionalprofile.searchcapacities',
  68.                     'choice_label' => 'label',
  69.                     'required'=> false,
  70.                     'query_builder' => function($er) {
  71.                         return $er->createQueryBuilder('a')
  72.                             ->addOrderBy('a.position''ASC')
  73.                             ->addOrderBy('a.label''ASC')
  74.                             ;
  75.                     }
  76.                 ]
  77.             )
  78.             ->add('otherSearchCapacity'TextType::class, ['label' => 'form.tospecify''attr' => ['class' => 'specify']])
  79.             ->add('healthSpeciality'EntityType::class, ['class' => HealthSpeciality::class, 'multiple' => false,
  80.                 'required'=> false'expanded' => false'label' => 'health.titlemyspeciality''choice_label' => 'label',
  81.                 'query_builder' => function($er) {
  82.                     return $er->createQueryBuilder('a')
  83.                         ->addOrderBy('a.position''ASC')
  84.                         ->addOrderBy('a.label''ASC')
  85.                         ;
  86.                 }
  87.             ])
  88.             ->add('otherHealthSpeciality'TextType::class, ['label' => 'form.tospecify''attr' => ['class' => 'specify']])
  89.             ->add('healthExerciceModes',
  90.                 EntityType::class,
  91.                 [
  92.                     'class' => HealthExerciseMode::class,
  93.                     'multiple' => true,
  94.                     'expanded' => true,
  95.                     'label' => 'health.exercicemode.form',
  96.                     'choice_label' => 'label',
  97.                     'required'=> false,
  98.                     'query_builder' => function($er) {
  99.                         return $er->createQueryBuilder('a')
  100.                             ->orderBy('a.label''ASC')
  101.                             ;
  102.                     }
  103.                 ]
  104.             )
  105.             ->add('typeResearch',
  106.                 EntityType::class,
  107.                 [
  108.                     'class' => TypeResearch::class,
  109.                     'multiple' => false,
  110.                     'expanded' => false,
  111.                     'label' => 'professionalprofile.typeresearch.my',
  112.                     'choice_label' => 'label',
  113.                     'required'=> false,
  114.                     'query_builder' => function($er) {
  115.                         return $er->createQueryBuilder('a')
  116.                             ->addOrderBy('a.position''ASC')
  117.                             ->addOrderBy('a.label''ASC')
  118.                             ;
  119.                     }
  120.                 ]
  121.             )
  122.             ->add('otherTypeResearch'TextType::class, ['label' => 'form.tospecify'])
  123.             ->add('projectLeader'ProjectLeaderType::class, ['label' => ' ' ])
  124.             ->add('linkedin'UrlType::class, ['required' => false'label' => 'Profil Linkedin'])
  125.             ->add('curriculumVitae'UploadDocumentType::class, ['label' => 'professionalprofile.cv'])
  126.             ->add('regions',
  127.                 EntityType::class,
  128.                 [
  129.                     'class' => Region::class,
  130.                     'multiple' => true,
  131.                     'expanded' => true,
  132.                     'label' => 'professionalprofile.regions.my',
  133.                     'choice_label' => 'name',
  134.                     'required'=> false,
  135.                     'query_builder' => function($er) {
  136.                         return $er->createQueryBuilder('a')
  137.                             ->where('a.searchable = true')
  138.                             ->orderBy('a.name''ASC')
  139.                             ;
  140.                     }
  141.                 ]
  142.             )
  143.             ->add('statuses',
  144.                 EntityType::class,
  145.                 [
  146.                     'class' => ProjectSituationStatus::class,
  147.                     'multiple' => true,
  148.                     'expanded' => true,
  149.                     'label' => 'professionalprofile.statuses.form',
  150.                     'choice_label' => 'label',
  151.                     'required'=> false,
  152.                     'query_builder' => function($er) {
  153.                         return $er->createQueryBuilder('a')
  154.                             ->orderBy('a.label''ASC')
  155.                             ->orderBy('a.position''ASC')
  156.                             ;
  157.                     }
  158.                 ]
  159.             )
  160.             ->add('otherProjectSituationStatus'TextType::class, ['label' => 'form.tospecify'])
  161.            // ->add('validate', SubmitType::class, ['label' => 'actions.validate'])
  162.         ;
  163.     }
  164.     public function configureOptions(OptionsResolver $resolver): void
  165.     {
  166.         $resolver->setDefaults([
  167.             'data_class' => ProfessionalProfile::class,
  168.         ]);
  169.     }
  170. }