EDIT: Problème réglé ! J'ai bien fouillé la doc et c'est ok !

Bonjour à tous.
Sur un projet Symfony que je bosse, je veux gérer un système de reset de mot de passe.
Grosso modo, ce que j'ai fait :

  • Créer mon formulaire (je met pas le code du formType, il n'a rien de particulier), puis je l'affiche :
    {{ form_start(reset_form) }}
                {{ form_row(reset_form.email) }}
                <button type="submit" class="btn__main">Envoyer un email</button>
            {{ form_end(reset_form) }}

Puis je le gère dans le controlleur :

public function getResetPassword(Request $request, UsersRepository $usersRepository){
        $user = new Users();
        $resetForm = $this->createForm(ResetPasswordType::class, $user);

        $resetForm->handleRequest($request);

        if($resetForm->isSubmitted() && $resetForm->isValid())
        {
            //code
        }

        return $this->render('login/reset.html.twig', [
            'reset_form' => $resetForm->createView(),
        ]);
    }

Maiiis, quand je clique sur le submit, j'ai une de mes règles de validation dans mon Entity qui s'active. Je renseigne un email, et j'ai une règle unique :

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

Ce qui du coup, lorsque je renseigne mon email, me sort une erreur "ce champs est déjà utilisé"

Comment est-ce que je peux faire, pour que dans le cas de ce submit là, ma validation ne me sorte pas cette erreur ?

Merci !

1 réponse


Je ne comprends pa pourquoi tu veux persister en base ton champ mail dans le cas d'un reset de mot de passe...
Pour cela, un form html suffit largement, tu récupères l'adresse mail directement dans l'objet Request...