<?php
namespace App\Form;
use App\Entity\DeliveryAddress;
use App\Service\ContactService;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
class DeliveryAddressType extends AbstractType
{
public function __construct(private ContactService $contactService){}
public function buildForm(FormBuilderInterface $builder, array $options): void
{
$useAdresseFacturationOptions = $options['useAdresseFacturation_options'] ?? [];
$builder
->add('prenom', null, [
'label' => "Prénom",
'attr' => [
'placeholder' => 'John',
],
])
->add('nom', null, [
'label' => "Nom",
'attr' => [
'placeholder' => 'Doe',
],
])
->add('adresse', null, [
'label' => "Rue",
'attr' => [
'placeholder' => '30 rue des tilleuls',
'autocomplete' => 'address-line1',
],
])
->add('codePostal', null, [
'label' => "Code postal",
'attr' => [
'autocomplete' => 'postal-code',
'placeholder' => '67000',
],
])
->add('ville', null, [
'label' => "Ville",
'attr' => [
'autocomplete' => 'address-level2',
'placeholder' => 'Strasbourg',
],
])
->add('pays', ChoiceType::class, [
'label' => "Pays",
'choices' => [
'France' => 'FRANCE',
],
'attr' => [
'placeholder' => 'France',
],
'required' => true,
])
->add('useAdresseFacturation', CheckboxType::class, array_merge([
'required' => false,
'attr' => [
'data-use-facturation-adresse' => true,
],
'label' => "Utiliser cette adresse pour la livraison",
'data' => true,
], $useAdresseFacturationOptions))
;
}
public function configureOptions(OptionsResolver $resolver): void
{
$resolver->setDefaults([
'data_class' => DeliveryAddress::class,
'csrf_protection' => false,
'useAdresseFacturation_options' => [],
]);
}
}