src/Form/ClientType.php line 15

Open in your IDE?
  1. <?php
  2. namespace App\Form;
  3. use App\Entity\Client;
  4. use Symfony\Component\Form\AbstractType;
  5. use Symfony\Component\Form\FormBuilderInterface;
  6. use Symfony\Component\OptionsResolver\OptionsResolver;
  7. use Symfony\Component\Form\Extension\Core\Type\HiddenType;
  8. use Symfony\Component\Form\Extension\Core\Type\TextType;
  9. use Symfony\Component\Form\Extension\Core\Type\EmailType;
  10. use Symfony\Component\Form\Extension\Core\Type\UrlType;
  11. use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
  12. class ClientType extends AbstractType
  13. {
  14.     public function buildForm(FormBuilderInterface $builder, array $options)
  15.     {
  16.         $builder
  17.             ->add('raisonsociale', TextType::class, [
  18.                 'label' => 'Raison Sociale',
  19.                 'attr' => ['placeholder' => 'Tech Innovations SAS'],
  20.             ])
  21.             ->add('siret', TextType::class, [
  22.                 'label' => 'SIRET',
  23.                 'attr' => ['placeholder' => '123 456 789 00012'],
  24.             ])
  25.             ->add('siteweb', UrlType::class, [
  26.                 'label' => 'Site Web',
  27.                 'attr' => ['placeholder' => 'www.techinnovations.fr'],
  28.                 'required' => false,
  29.             ])
  30.             ->add('telephone', TextType::class, [
  31.                 'label' => 'Téléphone',
  32.                 'attr' => ['placeholder' => '01 23 45 67 89'],
  33.                 // 'required' => false,
  34.             ])
  35.             ->add('civilite', ChoiceType::class, [
  36.                 'label' => 'Civilité',
  37.                 'choices' => [
  38.                     'M.' => 'M.',
  39.                     'Mme' => 'Mme',
  40.                     'Autre' => 'Autre',
  41.                 ],
  42.                 'attr' => ['placeholder' => 'Monsieur/Madame'],
  43.                 'required' => false,
  44.             ])
  45.             ->add('nom', TextType::class, [
  46.                 'label' => 'Nom',
  47.                 'attr' => ['placeholder' => 'Dupont'],
  48.             ])
  49.             ->add('prenom', TextType::class, [
  50.                 'label' => 'Prénom',
  51.                 'attr' => ['placeholder' => 'Pierre'],
  52.             ])
  53.             ->add('telephonecontact', TextType::class, [
  54.                 'label' => 'Téléphone de contact',
  55.                 'attr' => ['placeholder' => '06 12 34 56 78'],
  56.                 'required' => false,
  57.             ])
  58.             ->add('mail', EmailType::class, [
  59.                 'label' => 'E-mail',
  60.                 'attr' => ['placeholder' => 'pierre.dupont@techinnovations.fr'],
  61.             ])
  62.             ->add('adresse', TextType::class, [
  63.                 'label' => 'Adresse',
  64.                 'attr' => ['placeholder' => '15 Rue de l\'Innovation'],
  65.             ])
  66.             ->add('complementadresse', TextType::class, [
  67.                 'label' => 'Complément d\'adresse',
  68.                 'attr' => ['placeholder' => 'Bâtiment A, 3ème étage'],
  69.                 'required' => false,
  70.             ])
  71.             ->add('ville', TextType::class, [
  72.                 'label' => 'Ville',
  73.                 'attr' => ['placeholder' => 'Paris'],
  74.             ])
  75.             ->add('cp', TextType::class, [
  76.                 'label' => 'Code Postal',
  77.                 'attr' => ['placeholder' => '75001'],
  78.             ])
  79.             ->add('pays', TextType::class, [
  80.                 'label' => 'Pays',
  81.                 'attr' => ['placeholder' => 'France'],
  82.             ]);
  83.         // Only add the ID field if include_id is true
  84.         if ($options['include_id'] ?? true) {
  85.             $builder->add('id', HiddenType::class, [
  86.                 'mapped' => false,
  87.                 'attr' => ['id' => 'client_id']
  88.             ]);
  89.         }
  90.     }
  91.     public function configureOptions(OptionsResolver $resolver)
  92.     {
  93.         $resolver->setDefaults([
  94.             'data_class' => Client::class,
  95.             'include_id' => true,
  96.         ]);
  97.     }
  98. }