Bonjour,
Lorsque un nouvel utilisateur souhaite s'inscrire sur mon site (je travail en local pour le moment), il doit entrer un pseudo (username), son email (user_email) et un mot de passe.
Le pseudo et l'adresse email ne doivent pas exister dans la base de données, sinon l’utilisateur doit renvoyer le formulaire.
J'utilise pour cela la propriétée @UniqueEntity dans les annotations comme ci-dessous :
Bien sûr, au-dessus de username et user_email il est bien écris unique=true :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 /** ** @ORM\Entity(repositoryClass="App\Repository\UserRepository") ** @UniqueEntity(fields={"username"}, message="There is already an account with this username") ** @UniqueEntity(fields={"user_email"}, message="There is already an account with this email") **/
Le problème est que lorsque le nouvel utilisateur entre un pseudo (username) existant dans la base de donnée, le message ci-dessus s'affiche ce qui est correcte. Or, si c'est l'adresse email existe dans la base de donnée, le message lui correspondant ne s'affiche pas..
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 /** ** @ORM\Column(type="string", length=180, unique=true) **/ private $username;
De plus, mon formulaire traite bien comme si il y avais une erreur et renvoi le formulaire sans enregistrer le nouvel utilisateur. Lorsque je regarde dans le profiler, il m'affiche bien qu'il y a une erreur ainsi que le message !
Pourquoi le message ne s'affiche pas dans le formulaire lors de l'erreur alors que il s'affiche bien pour l'username ?
Merci !
Partager