src/Form/Admin/BookingConstraintSaisonType.php line 18

Open in your IDE?
  1. <?php
  2. namespace App\Form\Admin;
  3. use App\Entity\BookingConstraintSaison;
  4. use Symfony\Component\Form\AbstractType;
  5. use Symfony\Component\Form\FormBuilderInterface;
  6. use App\Form\BookingConstraintSaisonTranslationType;
  7. use App\Form\Admin\BookingConstraintSaisonPeriodType;
  8. use Symfony\Component\OptionsResolver\OptionsResolver;
  9. use Symfony\Contracts\Translation\TranslatorInterface;
  10. use Symfony\Component\Form\Extension\Core\Type\TextType;
  11. use Symfony\Component\Form\Extension\Core\Type\MoneyType;
  12. use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
  13. use Symfony\Component\Form\Extension\Core\Type\CollectionType;
  14. use A2lix\TranslationFormBundle\Form\Type\TranslationsFormsType;
  15. class BookingConstraintSaisonType extends AbstractType
  16. {
  17.     private TranslatorInterface $translator;
  18.     
  19.     public function __construct(TranslatorInterface $translator)
  20.     {
  21.         $this->translator $translator;
  22.     }
  23.     
  24.     public function buildForm(FormBuilderInterface $builder, array $options): void
  25.     {
  26.         $builder
  27.            ->add('translations'TranslationsFormsType::class, [
  28.                'label' => "Champ à traduire",
  29.                'form_type' => BookingConstraintSaisonTranslationType::class
  30.            ])
  31.             ->add('icon'TextType::class, [
  32.                 'label' => 'Icon (<a href="https://fontawesome.com/v5/search?q=" target="_blank">Font Awesome</a>)'
  33.             ])
  34.             ->add('price',  MoneyType::class, [
  35.                 'label' => 'Prix/nuit'
  36.             ])
  37.             ->add('periods'CollectionType::class, [
  38.                 'label' => 'Période(s)',
  39.                 'entry_type' => BookingConstraintSaisonPeriodType::class,
  40.                 'entry_options' => [
  41.                     'label' => false
  42.                 ],
  43.                 'allow_add' => true,
  44.                 'allow_delete' => true,
  45.                 'by_reference' =>false,
  46.                 'prototype' => true
  47.                 'prototype_name'=> '__saisonPeriod__'
  48.             ])
  49.         ;
  50.     }
  51.     public function configureOptions(OptionsResolver $resolver): void
  52.     {
  53.         $resolver->setDefaults([
  54.             'data_class' => BookingConstraintSaison::class,
  55.         ]);
  56.     }
  57. }