src/Form/SearchHotelType.php line 39

Open in your IDE?
  1. <?php
  2. namespace App\Form;
  3. use App\Entity\Arrangements;
  4. use App\Entity\Chambre;
  5. use App\Entity\Service;
  6. use Symfony\Bridge\Doctrine\Form\Type\EntityType;
  7. use Symfony\Component\Form\AbstractType;
  8. use Symfony\Component\Form\Extension\Core\Type\CollectionType;
  9. use Symfony\Component\Form\Extension\Core\Type\HiddenType;
  10. use Symfony\Component\Form\Extension\Core\Type\SubmitType;
  11. use Symfony\Component\Form\Extension\Core\Type\TextType;
  12. use Symfony\Component\Form\FormBuilderInterface;
  13. use Symfony\Component\OptionsResolver\OptionsResolverInterface;
  14. use Symfony\Component\Form\Extension\Core\Type\DateType;
  15. use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
  16. class SearchHotelType extends AbstractType
  17. {
  18.     /**
  19.      * @param FormBuilderInterface $builder
  20.      * @param array $options
  21.      */
  22.     public function buildForm(FormBuilderInterface $builder, array $options)
  23.     {
  24.         $builder
  25.         ->add('star'ChoiceType::class, [
  26.         'choices' => [
  27.             '1 étoile' => 1,
  28.             '2 étoiles' => 2,
  29.             '3 étoiles' => 3,
  30.             '4 étoiles' => 4,
  31.             '5 étoiles' => 5,
  32.         ],
  33.         'choice_label' => function ($value$key$index) {
  34.             return false;
  35.         },
  36.         'expanded' => true,
  37.         'multiple' => true,
  38.         // ... autres options ...
  39.     ])
  40.         ->add('min',HiddenType::class)
  41.         ->add('max',HiddenType::class)
  42.         ->add('chambre'EntityType::class, [
  43.             'class' => Chambre::class,
  44.             'choice_label' => 'name'// Assurez-vous d'ajuster le champ utilisé comme libellé
  45.             'required' => false// Permettre une valeur vide
  46.             'expanded' => true// Permet de rendre les radios ou checkboxes en ligne
  47.             'multiple' => true,
  48.         ])
  49.         ->add('service'EntityType::class, [
  50.             'class' => Service::class,
  51.             'choice_label' => 'name'// Assurez-vous d'ajuster le champ utilisé comme libellé
  52.             'required' => false// Permettre une valeur vide
  53.             'expanded' => true// Permet de rendre les radios ou checkboxes en ligne
  54.             'multiple' => true,
  55.         ])
  56.         ->add('arrangement'EntityType::class, [
  57.             'class' => Arrangements::class,
  58.             'choice_label' => 'name'// Assurez-vous d'ajuster le champ utilisé comme libellé
  59.             'required' => false// Permettre une valeur vide
  60.             'expanded' => true// Permet de rendre les radios ou checkboxes en ligne
  61.             'multiple' => true,
  62.         ])
  63.         ->add('ville'ChoiceType::class, [
  64.             'choices' => [
  65.                 'Tunis' => 'Tunis',
  66.                 'Hammamet' => 'Hammamet',
  67.                 'Sousse' => 'Sousse',
  68.                 'Monastir' => 'Monastir',
  69.                 'Mahdia' => 'Mahdia',
  70.                 'Tabarka' => 'Tabarka',
  71.                 'Ain Draham' => 'Ain Draham',
  72.                 'Tozeur' => 'Tozeur',
  73.                 'Djerba' => 'Djerba',
  74.             ],
  75.             'placeholder' => 'Choisir votre destination',
  76.             'required' => false// Permet à l'utilisateur de ne pas spécifier la destination
  77.         ])
  78.         ->add('dated'DateType::class, [
  79.             'widget' => 'single_text',
  80.             'required' => true,
  81.             'attr' => [
  82.                 'class' => 'form-control',
  83.                 'data-custom-attribute' => 'form-control',
  84.             ],
  85.         ])
  86.         ->add('datef'DateType::class, [
  87.             'widget' => 'single_text',
  88.             'required' => true,
  89.             'attr' => [
  90.                 'class' => 'form-control',
  91.                 'data-custom-attribute' => 'form-control',
  92.             ],
  93.         ])
  94.         ->add('nombreNuits'null, [
  95.             'attr' => ['readonly' => true], // le champ est en lecture seule
  96.         ])
  97.         ->add('rooms'CollectionType::class, [
  98.             'entry_type' => RoomsType::class, // Assuming RoomType is another form type for a single room
  99.             'allow_add' => true,
  100.             'allow_delete' => true,
  101.             'by_reference' => false,
  102.             'label' => false
  103.         ])
  104.         ;
  105. }
  106. }