Validation avec UniqueEntity Constraint

Par Stallmania, il y a 4 ans


J'utilise Symfony 5.3
Je voudrais realiser des validation sur un fomulaire d'enregistrement classique avec 4 champs :, nom email, mot de passe et repetition de mot de passe.
toutes les contraintes de validation marche bien sauf une qui verifier si l'email existe ou non dans la base de donnée.

"<?php

namespace App\Entity;

use Symfony\Component\Validator\Constraints as Assert;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Security\Core\User\UserInterface;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;

/**

Je voudrai empecher l'utilisateur pour qu'il ne rentre pas un email existant dans ma base de donnée .

Ce que j'obtiens
Dès que j'ajoute cette annotation * @UniqueEntity(fields={"email"}, message="Email déjà utilisé !") je valide le formulaire et j'obtien ce message d erreur :
The "App\Entity\User" entity has a repositoryClass set to "App\Entity\UserRepository", but this is not a valid class. Check your class naming. If this is meant to be a service id, make sure this service exists and is tagged with "doctrine.repository_service".

3 réponses

Marcus Kim, il y a 4 ans

Salut man, tu n'a pas mis de contraintes unique= true sur la propriéte. Tu dois respecter les deux niveau de contraintes

Marcus Kim, il y a 4 ans

@ORM\Column(type="string", length=255, unique=true)
@Assert\Email
*/
private $email;

Marcus Kim, il y a 4 ans

sans oublier de faire l'update de ta base de données