<?php
namespace App\Form;
use App\Entity\Membre;
use App\Entity\Commune;
use App\Entity\Federation;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\Extension\Core\Type\BirthdayType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\Extension\Core\Type\PasswordType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Doctrine\ORM\EntityRepository;
class MembreInscriptionType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options): void
{
$builder
->add('federation', EntityType::Class, [
'class' => Federation::Class,
'query_builder' => function (EntityRepository $er) use ($options) {
return $er->createQueryBuilder('f')
->where('f.province = :province')
->setParameter('province', $options['province'])
->orderBy('f.nom', 'ASC');
},
'label' => 'Fédération', 'required' => true, 'choice_label' => function ($federation) { return $federation->getNom() ;}])
->add('commune2', EntityType::Class, [
'class' => Commune::Class,
'query_builder' => function (EntityRepository $er) use ($options) {
return $er->createQueryBuilder('c')
->where('c.province = :province')
->setParameter('province', $options['province'])
->orderBy('c.nom', 'ASC');
},
'label' => 'Commune', 'required' => true, 'mapped' => false, 'choice_label' => function ($commune) { return $commune->getNom() ;}])
->add('user', UserTypeF::class, ['label' => ' '])
->add('password2', PasswordType::class,['label' => 'Saisissez de nouveau le mot de passe',
'mapped' => false])
->add('Enregistrer', SubmitType::class)
;
}
public function configureOptions(OptionsResolver $resolver): void
{
$resolver->setDefaults([
'data_class' => Membre::class,
]);
$resolver->setRequired('province');
// type validation - User instance or int, you can also pick just one.
//$resolver->setAllowedTypes('province', array(Province::class, 'province'));
}
}