<?php
namespace App\Form;
use App\Entity\Thematiques;
use App\Entity\Themes;
use App\Entity\Villes;
use App\Entity\Inscriptions;
use Symfony\Component\Form\AbstractType;
use Gregwar\CaptchaBundle\Type\CaptchaType;
use FOS\CKEditorBundle\Form\Type\CKEditorType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
use Symfony\Component\Validator\Constraints\File;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Form\Extension\Core\Type\UrlType;
use Symfony\Component\Form\Extension\Core\Type\FileType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\Extension\Core\Type\EmailType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\Extension\Core\Type\TextareaType;
class NewInscriptionFormType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options): void
{
$builder
->add('nom', TextType::class, [
'required' => true,
'attr' => [
'class' => 'form-control',
],
'label' => "Nom"])
->add('prenoms', TextType::class, [
'required' => true,
'attr' => [
'class' => 'form-control mt-1 mb-1',
'minlenght' => '2',
'maxlenght' => '100'
],
'label' => "Prénoms"])
->add('fonction', TextType::class, [
'required' => true,
'attr' => [
'class' => 'form-control mt-1 mb-1',
'minlenght' => '2',
'maxlenght' => '100'
],
'label' => "Fonction"])
->add('telephone', TextType::class, [
'required' => true,
'attr' => [
'class' => 'form-control mt-1 mb-1',
'minlenght' => '2',
'maxlenght' => '100'
],
'label' => "Téléphone"])
->add('mail', EmailType::class, [
'required' => true,
'attr' => [
'class' => 'form-control mt-1 mb-1',
'minlenght' => '2',
'maxlenght' => '100'
],
'label' => "Adresse email"])
->add('entreprise', TextType::class, [
'required' => true,
'attr' => [
'class' => 'form-control mt-1 mb-1',
],
'label' => "Entreprise ou Projet de Financement"])
->add('siteweb', UrlType::class, [
'required' => true,
'attr' => [
'class' => 'form-control mt-1 mb-1',
],
'label' => "Site Web de votre Entreprise"])
->add('nbparticipant', TextType::class, [
'required' => true,
'attr' => [
'class' => 'form-control mt-1 mb-1',
],
'label' => "Nombre de participants"])
->add('pays', TextType::class, [
'required' => true,
'attr' => [
'class' => 'form-control mt-1 mb-1',
],
'label' => "Pays"])
->add('ville', TextType::class, [
'required' => true,
'attr' => [
'class' => 'form-control mt-1 mb-1',
],
'label' => "Ville"])
->add('boitepostale', TextType::class, [
'required' => true,
'attr' => [
'class' => 'form-control mt-1 mb-1',
],
'label' => "Boite postale"])
->add('whatsapp', TextType::class, [
'required' => true,
'attr' => [
'class' => 'form-control mt-1 mb-1',
],
'label' => "Whatsapp"])
->add('adresse', TextType::class, [
'required' => true,
'attr' => [
'class' => 'form-control mt-1 mb-1',
],
'label' => "Adresse"])
->add('thematique', EntityType::class, [
'class' => Thematiques::class,
'choice_label' => 'nom',
'choice_value' => 'id',
'placeholder' => 'Sélectionner la thématique', // ✅ ici
'required' => true,
'mapped' => true,
'attr' => [
'class' => 'form-control border-2 mt-1 mb-1 select2'
],
'label' => false
])
->add('theme', EntityType::class, [
'required' => true,
'mapped' => true,
'attr' => [
'class' => 'form-control border-2 mt-1 mb-1 select2',
],
'class' => Themes::class,
'placeholder' => 'Selectionner une thème',
'choice_label' => 'nom',
'choice_value' => 'id',
'label' => false])
->add('lieu', EntityType::class, [
'required' => true,
'mapped' => true,
'attr' => [
'class' => 'form-control border-2 mt-1 mb-1 select2',
],
'class' => Villes::class,
'placeholder' => 'Selectionner le lieu',
'choice_label' => 'nom',
'choice_value' => 'id',
'label' => false])
->add('prix', TextType::class, [
'required' => true,
'attr' => [
'class' => 'form-control mt-1 mb-1','placeholder' => 'Prix',
],
'label' => false])
->add('periode', TextType::class, [
'required' => true,
'attr' => [
'class' => 'form-control mt-1 mb-1','placeholder' => 'Période',
],
'label' => false])
->add('commentaire', TextareaType::class, [
'required' => true,
'attr' => [
'class' => 'form-control textarea',
],
'label' => "Commentaire"])
->add('captcha', CaptchaType::class, [
'required' => true,
'label' => 'Saisissez le texte ci-dessus',
'attr' => [
'class' => 'form-control mb-1 captcha',
'style' =>'width: 100%'
],])
->add('submit', SubmitType::class, [
'attr' => [
'class' => 'btn btn-primary btn-large'
],
'label' => 'Enregistrer']);
// ...
}
public function configureOptions(OptionsResolver $resolver): void
{
$resolver->setDefaults([
'data_class' => Inscriptions::class,
]);
}
}