<?php
namespace App\Form;
use App\Entity\Personne;
use App\Entity\Kartier;
use App\Entity\Commune;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\Extension\Core\Type\DateType;
use Symfony\Component\Form\Extension\Core\Type\BirthdayType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
use App\Repository\CommuneRepository;
use App\Repository\KartierRepository;
use Symfony\Component\Form\FormEvents;
use Symfony\Component\Form\FormEvent;
class PersonneType extends AbstractType
{
private $kartierRepository;
public function __construct(KartierRepository $kartierRepository){
$this->kartierRepository = $kartierRepository;
}
public function buildForm(FormBuilderInterface $builder, array $options): void
{
$builder
// ->AddEventListener(FormEvents::PRE_SET_DATA, function(FormEvent $event) {
// $form = $event->getForm();
// $data = $event->getData();
// $commune = $event->getData()['commune'] ?? null;
// $quartiers = $this->kartierRepository->findBy(["commune" => $commune]);
// $event->getForm()->add('kartier', EntityType::class, [
// 'class' => Kartier::class,
// 'choice_label' => 'nom',
// 'choices' => $quartiers,
// ]);
//})
->add('nom', TextType::class, ['label' => 'Nom* '])
->add('prenom', TextType::class, ['label' => 'Prénom* '])
->add('postnom', TextType::class, ['label' => 'Postnom ', 'required' => false])
->add('telephone', TextType::class, ['label' => 'Téléphone Principal* '])
->add('telephone2', TextType::class, ['label' => 'Téléphone secondaire', 'required' => false])
->add('quartier', TextType::class, ['label' => 'Quartier*'])
->add('adresse', TextType::class, ['label' => 'Adresse*'])
->add('email', TextType::class, ['label' => 'Adresse Email', 'required' => false])
->add('etatCivil', ChoiceType::class, [
'choices' => [
'Celibataire' => "Célibataire",
'Marié' => "Marié",
'Divorcé' => "Divorcé",
'Séparé' => "Séparé(e)",
'Veuf' => "Veuf/veuve",
]])
->add('sexe', ChoiceType::class, [
'choices' => [
'Homme' => "M",
'Femme' => "F",
]])
->add('province', ChoiceType::class, [
'choices' => [
'Bas-Uele' => "Bas-Uele",
'Equateur' => "Equateur",
'Haut-Katanga' => "Haut-Katanga",
'Haut-Lomami' => "Haut-Lomami",
'Ituri' => "Ituri",
'Kasai' => "Kasai",
'Kasai oriental' => "Kasai oriental",
'Kasai Central' => "Kasai Central",
'Kinshasa' => "Kinshasa",
'Kongo Central' => "Kongo Central",
'Kwango' => "Kwango",
'Kwilu' => "Kwilu",
'Lomami' => "Lomami",
'Lualaba' => "Lualaba",
'Mai-ndombe' => "Mai-ndombe",
'Maniema' => "Maniema",
'Mongala' => "Mongala",
'Nord-kivu' => "Nord-kivu",
'Nord-Ubangi' => "Nord-Ubangi",
'Sankuru' => "Sankuru",
'Sud-Kivu' => "Sud-Kivu",
'Sud-Ubangi' => "Sud-Ubangi",
'Tanganyika' => "Tanganyika",
'Tshopo' => "Tshopo",
'Tshuapa' => "Tshuapa",
], 'label' => 'Province d\'origine'])
->add('dateNaissance', BirthdayType::class, ['label' => 'Date de Naissance*'])
->add('lieuNaissance', TextType::class, ['label' => 'Lieu de Naissance* '])
// ->add('commune', EntityType::Class, [
// 'class' => Commune::class,
// 'choice_label' => 'nom',
// 'placeholder' => 'Veuillez choisir une Commune',
// 'query_builder' => function(CommuneRepository $communeRepository){
// return $communeRepository->createQueryBuilder('c')->orderBy('c.nom', 'ASC');
// },
// ])
;
}
public function configureOptions(OptionsResolver $resolver): void
{
$resolver->setDefaults([
'data_class' => Personne::class,
]);
}
}