<?php
namespace App\Form;
use App\Entity\Arrangements;
use App\Entity\Chambre;
use App\Entity\Service;
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\CollectionType;
use Symfony\Component\Form\Extension\Core\Type\HiddenType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
use Symfony\Component\Form\Extension\Core\Type\DateType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
class SearchHotelType extends AbstractType
{
/**
* @param FormBuilderInterface $builder
* @param array $options
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('star', ChoiceType::class, [
'choices' => [
'1 étoile' => 1,
'2 étoiles' => 2,
'3 étoiles' => 3,
'4 étoiles' => 4,
'5 étoiles' => 5,
],
'choice_label' => function ($value, $key, $index) {
return false;
},
'expanded' => true,
'multiple' => true,
// ... autres options ...
])
->add('min',HiddenType::class)
->add('max',HiddenType::class)
->add('chambre', EntityType::class, [
'class' => Chambre::class,
'choice_label' => 'name', // Assurez-vous d'ajuster le champ utilisé comme libellé
'required' => false, // Permettre une valeur vide
'expanded' => true, // Permet de rendre les radios ou checkboxes en ligne
'multiple' => true,
])
->add('service', EntityType::class, [
'class' => Service::class,
'choice_label' => 'name', // Assurez-vous d'ajuster le champ utilisé comme libellé
'required' => false, // Permettre une valeur vide
'expanded' => true, // Permet de rendre les radios ou checkboxes en ligne
'multiple' => true,
])
->add('arrangement', EntityType::class, [
'class' => Arrangements::class,
'choice_label' => 'name', // Assurez-vous d'ajuster le champ utilisé comme libellé
'required' => false, // Permettre une valeur vide
'expanded' => true, // Permet de rendre les radios ou checkboxes en ligne
'multiple' => true,
])
->add('ville', ChoiceType::class, [
'choices' => [
'Tunis' => 'Tunis',
'Hammamet' => 'Hammamet',
'Sousse' => 'Sousse',
'Monastir' => 'Monastir',
'Mahdia' => 'Mahdia',
'Tabarka' => 'Tabarka',
'Ain Draham' => 'Ain Draham',
'Tozeur' => 'Tozeur',
'Djerba' => 'Djerba',
],
'placeholder' => 'Choisir votre destination',
'required' => false, // Permet à l'utilisateur de ne pas spécifier la destination
])
->add('dated', DateType::class, [
'widget' => 'single_text',
'required' => true,
'attr' => [
'class' => 'form-control',
'data-custom-attribute' => 'form-control',
],
])
->add('datef', DateType::class, [
'widget' => 'single_text',
'required' => true,
'attr' => [
'class' => 'form-control',
'data-custom-attribute' => 'form-control',
],
])
->add('nombreNuits', null, [
'attr' => ['readonly' => true], // le champ est en lecture seule
])
->add('rooms', CollectionType::class, [
'entry_type' => RoomsType::class, // Assuming RoomType is another form type for a single room
'allow_add' => true,
'allow_delete' => true,
'by_reference' => false,
'label' => false
])
;
}
}