<?php
namespace App\Form;
use App\Entity\User;
use App\Entity\Villes;
use App\Repository\VillesRepository;
use EasyCorp\Bundle\EasyAdminBundle\Field\TelephoneField;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\Extension\Core\Type\EmailType;
use Symfony\Component\Form\Extension\Core\Type\PasswordType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Validator\Constraints\IsTrue;
use Symfony\Component\Validator\Constraints\Length;
use Symfony\Component\Validator\Constraints\NotBlank;
class RegistrationFormType extends AbstractType
{
private VillesRepository $villesRepository ;
/**
* @param VillesRepository $villesRepository
*/
public function __construct(VillesRepository $villesRepository)
{
$this->villesRepository = $villesRepository;
}
public function buildForm(FormBuilderInterface $builder, array $options): void
{
$villes = $this->villesRepository->findAll() ;
// dd($villes);
$builder
->add('telephone',TextType::class,[
'constraints' => [
new NotBlank([
'message' => 'Veillez renseignez votre numero de telephone',])],
'label'=>'Numero de telephone au format (96004523)<span style="color:red;">*</span>',
'label_html' => true
])
->add('nom',TextType::class,[
'constraints' => [
new NotBlank([
'message' => 'Veillez renseignez votre nom',])],
'label'=>'Nom <span style="color:red;">*</span>',
'label_html'=>true
])
->add('prenoms',TextType::class,[
'constraints' => [
new NotBlank([
'message' => 'Veillez renseignez votre prenom',])],
'label'=>'Prénoms <span style="color:red;">*</span>',
'label_html'=>true
])
->add('boutique',TextType::class,[ 'label'=>'Boutique' ])
->add('email',EmailType::class,[
'constraints' => [
new NotBlank([
'message' => 'Veillez renseignez votre email',])],
'label'=>'E-mail<span style="color:red;">*</span>',
'label_html'=>true
])
->add('ville',
ChoiceType::class, [
'choices' =>
$villes
,
'choice_value' => 'nom',
'placeholder' => 'Choisir sa localisation',
'choice_label' => function (?Villes $v) {
return $v->getNom();
},
'row_attr' => ['class' => 'select2-selection form-control'],
'label'=>'Localisation Boutique',
])
->add('telwhatsapp', TextType::class, ['label'=>'Numero whatsApp (+2289200000)'])
->add('password', PasswordType::class, [
// instead of being set onto the object directly,
// this is read and encoded in the controller
// 'mapped' => false,
'label'=>'Mot de passe<span style="color:red;">*</span>',
'label_html'=>true,
'attr' => ['autocomplete' => 'Nouveau mot de passe'],
'constraints' => [
new NotBlank([
'message' => 'Renseigner un mot de passe',
]),
new Length([
'min' => 6,
'minMessage' => 'votre mot de passe doit avoir au moins {{ limit }} caractère',
// max length allowed by Symfony for security reasons
'max' => 4096,
]),
],
])
->add('confirmpassword', PasswordType::class, [
// instead of being set onto the object directly,
// this is read and encoded in the controller
'mapped' => false,
'label'=>'Confirmer le mot de passe <span style="color:red;">*</span>',
'label_html'=>true,
'attr' => ['autocomplete' => 'Nouveau mot de passe'],
'constraints' => [
new NotBlank([
'message' => 'Renseigner un mot de passe',
]),
new Length([
'min' => 6,
'minMessage' => 'votre mot de passe doit avoir au moins {{ limit }} caractère',
// max length allowed by Symfony for security reasons
'max' => 4096,
]),
],
])
;
}
public function configureOptions(OptionsResolver $resolver): void
{
$resolver->setDefaults([
'data_class' => User::class,
]);
}
}