<?php
namespace App\Form;
use App\Entity\User;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\Extension\Core\Type\EmailType;
use Symfony\Component\Form\Extension\Core\Type\FileType;
use Symfony\Component\Form\Extension\Core\Type\PasswordType;
use Symfony\Component\Form\Extension\Core\Type\RepeatedType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Validator\Constraints\File;
use Symfony\Component\Validator\Constraints\IsTrue;
use Symfony\Component\Validator\Constraints\Length;
use Symfony\Component\Validator\Constraints\NotBlank;
use function Symfony\Component\Translation\t;
class RegistrationFormType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options): void
{
$builder
->add('nom', TextType::class, [
'label' => 'Nom',
'label_attr' => [
'class' => 'from-label'
],
'required' => false,
'attr' => [
'class' => 'form-controlle',
'placeholder' => 'saisir le nom'
],
])
->add('prenom', TextType::class, [
'label' => 'Prénom',
'label_attr' => [
'class' => 'from-label',
],
'required' => false,
'attr' => [
'class' => 'form-controlle',
'placeholder' => 'saisir le prénom'
]
])
->add('adresse', TextType::class, [
'label' => 'Adresse',
'label_attr' => [
'class' => 'from-label'
],
'required' => false,
'attr' => [
'class' => 'form-controlle',
'placeholder' => 'saisir l\'adresse'
]
])
->add('email', EmailType::class, [
'label' => 'E-mail',
'label_attr' => [
'class' => 'from-label'
],
'required' => false,
'attr' => [
'class' => 'form-controlle',
'placeholder' => 'saisir l\'email'
]
])
->add('tel', TextType::class, [
'label' => 'Téléphone',
'label_attr' => [
'class' => 'from-label'
],
'required' => false,
'attr' => [
'class' => 'form-controlle',
'placeholder' => 'saisir le numéro'
]
])
->add('sexe', ChoiceType::class, [
'label' => 'Sexe',
'label_attr' => [
'class' => 'from-label'
],
'required' => false,
'expanded' => true,
'choices' => [
'Masculin' => 'M',
'Feminin' => 'F'
],
'attr' => [
'class' => 'd-flex justify-content-between'
]
])
->add('typeClient', ChoiceType::class, [
'label' => 'Type Client',
'label_attr' => [
'class' => 'from-label'
],
'required' => true,
'expanded' => false,
'multiple' => false,
'choices' => [
'Une Entreprise' => 'entreprise',
'Une Personne' => 'ordinaire'
],
])
->add('rccm', FileType::class, [
'label' => 'RCCM (pdf)',
'mapped' => false,
'required' => false,
'constraints' => [
new File([
'maxSize' => '50000k',
'mimeTypes' => [
'application/pdf',
'application/x-pdf',
],
'mimeTypesMessage' => 'La fiche du RCCM',
])
],
])
->add('password', RepeatedType::class, [
'type' => PasswordType::class,
'invalid_message' => 'le mot de pass est invalide.',
'options' => ['attr' => ['class' => 'password-field']],
'required' => true,
'first_options' => ['label' => 'Mot de pass'],
'second_options' => ['label' => 'Confirmer le mot de pass'],
])
->add('nomEtreprise', TextType::class, [
'label' => 'Nom Entréprise',
'label_attr' => [
'class' => 'from-label'
],
'required' => false,
'attr' => [
'class' => 'form-controlle',
'placeholder' => 'Saisir le nom de l\'entreprise'
],
])
->add('statusEntreprise', ChoiceType::class, [
'label' => 'Status',
'label_attr' => [
'class' => 'from-label'
],
'required' => false,
'placeholder' => '=====Choisir le status=====',
'expanded' => false,
'multiple' => false,
'choices' => [
'SA' => 'SA',
'SAS' => 'SAS'
],
])
;
}
public function configureOptions(OptionsResolver $resolver): void
{
$resolver->setDefaults([
'data_class' => User::class,
]);
}
}