src/Form/Type/JobApplicationFormType.php line 19

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Form\Type;
  4. use Symfony\Component\Form\AbstractType;
  5. use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
  6. use Symfony\Component\Form\Extension\Core\Type\EmailType;
  7. use Symfony\Component\Form\Extension\Core\Type\FileType;
  8. use Symfony\Component\Form\Extension\Core\Type\SubmitType;
  9. use Symfony\Component\Form\Extension\Core\Type\TextareaType;
  10. use Symfony\Component\Form\Extension\Core\Type\TextType;
  11. use Symfony\Component\Form\FormBuilderInterface;
  12. use Symfony\Component\Validator\Constraints\File;
  13. use Symfony\Component\Validator\Constraints\NotNull;
  14. use Symfony\Contracts\Translation\TranslatorInterface;
  15. class JobApplicationFormType extends AbstractType
  16. {
  17.     private $translator;
  18.     public function __construct(TranslatorInterface $translator null)
  19.     {
  20.         $this->translator $translator;
  21.     }
  22.     public function buildForm(FormBuilderInterface $builder, array $options): void
  23.     {
  24.         $builder
  25.             ->add('name'TextType::class)
  26.             ->add('email'EmailType::class)
  27.             ->add('coverLetter'TextareaType::class)
  28.             ->add('cvFile'FileType::class, [
  29.                 'mapped' => false,
  30.                 'constraints' => [
  31.                     new NotNull(),
  32.                     new File(
  33.                         [
  34.                             'mimeTypes' => [
  35.                                 'application/pdf',
  36.                                 'application/x-pdf',
  37.                                 'application/msword'// doc
  38.                                 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'// docx
  39.                                 'application/vnd.openxmlformats-officedocument.wordprocessingml.template'// dotx
  40.                                 'application/vnd.oasis.opendocument.text'// odt
  41.                                 'image/jpeg'// jpeg
  42.                                 'image/jpg',  // jpg
  43.                                 'image/png',  // png
  44.                             ],
  45.                             'mimeTypesMessage' => $this->translator->trans('file_uploader.mime_type_error', [], 'validators')
  46.                         ]
  47.                     )
  48.                 ]
  49.             ])
  50.             ->add('privacyPolicyAccepted'CheckboxType::class)
  51.             ->add('send'SubmitType::class);
  52.     }
  53. }