src/Form/DeliveryAddressType.php line 13

Open in your IDE?
  1. <?php
  2. namespace App\Form;
  3. use App\Entity\DeliveryAddress;
  4. use App\Service\ContactService;
  5. use Symfony\Component\Form\AbstractType;
  6. use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
  7. use Symfony\Component\Form\FormBuilderInterface;
  8. use Symfony\Component\OptionsResolver\OptionsResolver;
  9. use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
  10. class DeliveryAddressType extends AbstractType
  11. {
  12.     public function __construct(private ContactService $contactService){}
  13.     public function buildForm(FormBuilderInterface $builder, array $options): void
  14.     {
  15.         $useAdresseFacturationOptions $options['useAdresseFacturation_options'] ?? [];
  16.         $builder
  17.             ->add('prenom'null, [
  18.                 'label' => "PrĂ©nom",
  19.                 'attr' => [
  20.                     'placeholder' => 'John',
  21.                 ],
  22.             ])
  23.             ->add('nom'null, [
  24.                 'label' => "Nom",
  25.                 'attr' => [
  26.                     'placeholder' => 'Doe',
  27.                 ],
  28.             ])
  29.             ->add('adresse'null, [
  30.                 'label' => "Rue",
  31.                 'attr' => [
  32.                     'placeholder' => '30 rue des tilleuls',
  33.                     'autocomplete' => 'address-line1',
  34.                 ],
  35.             ])
  36.             ->add('codePostal'null, [
  37.                 'label' => "Code postal",
  38.                 'attr' => [
  39.                     'autocomplete' => 'postal-code',
  40.                     'placeholder' => '67000',
  41.                 ],
  42.             ])
  43.             ->add('ville'null, [
  44.                 'label' => "Ville",
  45.                 'attr' => [
  46.                     'autocomplete' => 'address-level2',
  47.                     'placeholder' => 'Strasbourg',
  48.                 ],
  49.             ])
  50.             ->add('pays'ChoiceType::class, [
  51.                 'label' => "Pays",
  52.                 'choices' => [
  53.                     'France' => 'FRANCE',
  54.                 ],
  55.                 'attr' => [
  56.                     'placeholder' => 'France',
  57.                 ],
  58.                 'required' => true,
  59.             ])
  60.             ->add('useAdresseFacturation'CheckboxType::class, array_merge([
  61.                 'required' => false,
  62.                 'attr' => [
  63.                     'data-use-facturation-adresse' => true,
  64.                 ],
  65.                 'label' => "Utiliser cette adresse pour la livraison",
  66.                 'data' => true,
  67.             ], $useAdresseFacturationOptions))
  68.         ;
  69.     }
  70.     public function configureOptions(OptionsResolver $resolver): void
  71.     {
  72.         $resolver->setDefaults([
  73.             'data_class' => DeliveryAddress::class,
  74.             'csrf_protection' => false,
  75.             'useAdresseFacturation_options' => [],
  76.         ]);
  77.     }
  78. }