<?php
namespace App\Form;
use App\Entity\User;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\EmailType;
use Symfony\Component\Form\Extension\Core\Type\PasswordType;
use Symfony\Component\Form\Extension\Core\Type\RepeatedType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
class UserType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options): void
{
$role = $options['role'];
$builder->add('email', EmailType::class);
if ("admin" === $role) {
$builder
->add('clientName')
->add('adresse')
->add('complement')
->add('codePostal')
->add('ville')
->add('represantantFirstName')
->add('represantantLastName')
->add('dateNaissanceRepresentant', \Symfony\Component\Form\Extension\Core\Type\DateType::class, [
'widget' => 'single_text',
'required' => false,
'mapped' => false,
'label' => 'Date de naissance du représentant',
])
->add('lieuNaissanceRepresentant', \Symfony\Component\Form\Extension\Core\Type\TextType::class, [
'required' => false,
'mapped' => false,
'label' => 'Lieu de naissance du représentant',
]);
} else {
$builder->add('password', RepeatedType::class, [
'type' => PasswordType::class,
'first_options' => ['label' => 'Mot de passe'],
'second_options' => ['label' => 'Confirmer le mot de passe'],
'mapped' => true,
]);
}
}
public function configureOptions(OptionsResolver $resolver): void
{
$resolver->setDefaults([
'data_class' => User::class,
'role' => null, // Définir l'option personnalisée avec une valeur par défaut
]);
$resolver->setAllowedTypes('role', ['null', 'string']); // Définir les types autorisés pour l'option
}
}