src/Form/PersonneType.php line 24

Open in your IDE?
  1. <?php
  2. namespace App\Form;
  3. use App\Entity\Personne;
  4. use App\Entity\Kartier;
  5. use App\Entity\Commune;
  6. use Symfony\Component\Form\AbstractType;
  7. use Symfony\Component\Form\FormBuilderInterface;
  8. use Symfony\Component\OptionsResolver\OptionsResolver;
  9. use Symfony\Component\Form\Extension\Core\Type\TextType;
  10. use Symfony\Component\Form\Extension\Core\Type\SubmitType;
  11. use Symfony\Component\Form\Extension\Core\Type\DateType;
  12. use Symfony\Component\Form\Extension\Core\Type\BirthdayType;
  13. use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
  14. use Symfony\Bridge\Doctrine\Form\Type\EntityType;
  15. use App\Repository\CommuneRepository;
  16. use App\Repository\KartierRepository;
  17. use Symfony\Component\Form\FormEvents;
  18. use Symfony\Component\Form\FormEvent;
  19. class PersonneType extends AbstractType
  20. {
  21. private $kartierRepository;
  22. public function __construct(KartierRepository $kartierRepository){
  23. $this->kartierRepository = $kartierRepository;
  24. }
  25. public function buildForm(FormBuilderInterface $builder, array $options): void
  26. {
  27. $builder
  28. // ->AddEventListener(FormEvents::PRE_SET_DATA, function(FormEvent $event) {
  29. // $form = $event->getForm();
  30. // $data = $event->getData();
  31. // $commune = $event->getData()['commune'] ?? null;
  32. // $quartiers = $this->kartierRepository->findBy(["commune" => $commune]);
  33. // $event->getForm()->add('kartier', EntityType::class, [
  34. // 'class' => Kartier::class,
  35. // 'choice_label' => 'nom',
  36. // 'choices' => $quartiers,
  37. // ]);
  38. //})
  39. ->add('nom', TextType::class, ['label' => 'Nom* '])
  40. ->add('prenom', TextType::class, ['label' => 'Prénom* '])
  41. ->add('postnom', TextType::class, ['label' => 'Postnom ', 'required' => false])
  42. ->add('telephone', TextType::class, ['label' => 'Téléphone Principal* '])
  43. ->add('telephone2', TextType::class, ['label' => 'Téléphone secondaire', 'required' => false])
  44. ->add('quartier', TextType::class, ['label' => 'Quartier*'])
  45. ->add('adresse', TextType::class, ['label' => 'Adresse*'])
  46. ->add('email', TextType::class, ['label' => 'Adresse Email', 'required' => false])
  47. ->add('etatCivil', ChoiceType::class, [
  48. 'choices' => [
  49. 'Celibataire' => "Célibataire",
  50. 'Marié' => "Marié",
  51. 'Divorcé' => "Divorcé",
  52. 'Séparé' => "Séparé(e)",
  53. 'Veuf' => "Veuf/veuve",
  54. ]])
  55. ->add('sexe', ChoiceType::class, [
  56. 'choices' => [
  57. 'Homme' => "M",
  58. 'Femme' => "F",
  59. ]])
  60. ->add('province', ChoiceType::class, [
  61. 'choices' => [
  62. 'Bas-Uele' => "Bas-Uele",
  63. 'Equateur' => "Equateur",
  64. 'Haut-Katanga' => "Haut-Katanga",
  65. 'Haut-Lomami' => "Haut-Lomami",
  66. 'Ituri' => "Ituri",
  67. 'Kasai' => "Kasai",
  68. 'Kasai oriental' => "Kasai oriental",
  69. 'Kasai Central' => "Kasai Central",
  70. 'Kinshasa' => "Kinshasa",
  71. 'Kongo Central' => "Kongo Central",
  72. 'Kwango' => "Kwango",
  73. 'Kwilu' => "Kwilu",
  74. 'Lomami' => "Lomami",
  75. 'Lualaba' => "Lualaba",
  76. 'Mai-ndombe' => "Mai-ndombe",
  77. 'Maniema' => "Maniema",
  78. 'Mongala' => "Mongala",
  79. 'Nord-kivu' => "Nord-kivu",
  80. 'Nord-Ubangi' => "Nord-Ubangi",
  81. 'Sankuru' => "Sankuru",
  82. 'Sud-Kivu' => "Sud-Kivu",
  83. 'Sud-Ubangi' => "Sud-Ubangi",
  84. 'Tanganyika' => "Tanganyika",
  85. 'Tshopo' => "Tshopo",
  86. 'Tshuapa' => "Tshuapa",
  87. ], 'label' => 'Province d\'origine'])
  88. ->add('dateNaissance', BirthdayType::class, ['label' => 'Date de Naissance*'])
  89. ->add('lieuNaissance', TextType::class, ['label' => 'Lieu de Naissance* '])
  90. // ->add('commune', EntityType::Class, [
  91. // 'class' => Commune::class,
  92. // 'choice_label' => 'nom',
  93. // 'placeholder' => 'Veuillez choisir une Commune',
  94. // 'query_builder' => function(CommuneRepository $communeRepository){
  95. // return $communeRepository->createQueryBuilder('c')->orderBy('c.nom', 'ASC');
  96. // },
  97. // ])
  98. ;
  99. }
  100. public function configureOptions(OptionsResolver $resolver): void
  101. {
  102. $resolver->setDefaults([
  103. 'data_class' => Personne::class,
  104. ]);
  105. }
  106. }