src/Form/RechercheFormType.php line 65

Open in your IDE?
  1. <?php
  2. // src/Form/SearchType.php
  3. namespace App\Form;
  4. use Symfony\Component\Form\AbstractType;
  5. use Symfony\Component\Form\FormBuilderInterface;
  6. use App\Entity\Villes;
  7. use App\Entity\Themes;
  8. use App\Repository\VillesRepository;
  9. use Symfony\Component\Form\Extension\Core\Type\SubmitType;
  10. use Symfony\Bridge\Doctrine\Form\Type\EntityType;
  11. use Symfony\Component\Form\Extension\Core\Type\SearchType as SymfonySearchType;
  12. use Symfony\Component\OptionsResolver\OptionsResolver;
  13. class RechercheFormType extends AbstractType
  14. {
  15.     public function buildForm(FormBuilderInterface $builder, array $options)
  16.     {
  17.         $builder
  18.         /*->add('mot', SymfonySearchType::class, [
  19.             'label' => false,
  20.             'required' => false,
  21.             'attr' => [
  22.                 'class' => 'search-form__input form-control',
  23.                 'placeholder' => 'Séminaire recherché...',
  24.             ],
  25.         ])*/
  26.         
  27.         ->add('mot'EntityType::class, [
  28.             'class' => Themes::class,
  29.             'choice_label' => 'nom',
  30.             'choice_value' => 'nom',
  31.             'required' => false,
  32.             'mapped' => false,
  33.             'placeholder' => 'Séminaire recherché...',
  34.             'label' => false,
  35.             'attr' => [
  36.                 'class' => 'search-form__input form-control select2',
  37.                 'autocomplete' => 'off',
  38.                 'style' => 'width: 100%;',
  39.                 'id' => 'recherche_mot'// important !
  40.             ],
  41.         ])
  42.         ->add('ville'EntityType::class, [
  43.              'required' => false,
  44.              'mapped' => false,
  45.              'choice_label' => 'nom',
  46.              'choice_value' => 'id',
  47.              'placeholder' => 'Sélectionner la ville'// 🔹 ceci ajoute l’option par défaut
  48.              'label' => false,
  49.              'attr' => [
  50.                  'class' => 'form-control ville-uppercase',
  51.                  'style' => 'border-radius: 0px;',
  52.                  'placeholder' => 'Selectionner la ville',
  53.              ],
  54.              'class' => Villes::class,
  55.              // Ici on filtre SHANGAI
  56.             'query_builder' => function (VillesRepository $vr) {
  57.                 return $vr->createQueryBuilder('v')
  58.                     ->orderBy('v.nom''ASC'); // pas de where ici
  59.             },
  60.             'choice_attr' => function(Villes $ville) {
  61.                 // masquer SHANGAI dans le menu d�roulant
  62.                 return strtoupper($ville->getNom()) === 'SHANGHAI' ? ['style' => 'display:none'] : [];
  63.             },
  64.         ])
  65.              
  66.    
  67.              
  68.              
  69.              
  70.         ->add('submit'SubmitType::class, [
  71.             'attr' => [
  72.                 'class' => 'btn-recherche',
  73.                 'style' => 'width: 100%; border-radius: 5px;'
  74.             ],
  75.             'label' => 'Rechercher',
  76.         ]);
  77.     }
  78.     public function configureOptions(OptionsResolver $resolver)
  79.     {
  80.         $resolver->setDefaults([
  81.             'method' => 'GET',
  82.             'csrf_protection' => false,
  83.         ]);
  84.     }
  85. }