fix: gérer l'erreur email dupliqué à la création de compte
Affiche un message utilisateur au lieu d'une exception SQL quand l'email existe déjà. Déplace l'envoi du mail après le flush. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -966,6 +966,14 @@ class ReserverController extends AbstractController
|
||||
$customer->setPassword($hashedPassword);
|
||||
$customer->setRoles(['ROLE_USER']);
|
||||
|
||||
try {
|
||||
$em->persist($customer);
|
||||
$em->flush();
|
||||
} catch (\Doctrine\DBAL\Exception\UniqueConstraintViolationException $e) {
|
||||
$this->addFlash('error', 'Un compte avec cette adresse email existe déjà. Veuillez vous connecter ou utiliser une autre adresse email.');
|
||||
return $this->redirectToRoute('reservation_register');
|
||||
}
|
||||
|
||||
$mailer->send(
|
||||
$customer->getEmail(),
|
||||
$customer->getName() . " " . $customer->getSurname(),
|
||||
@@ -974,9 +982,6 @@ class ReserverController extends AbstractController
|
||||
['customer' => $customer]
|
||||
);
|
||||
|
||||
$em->persist($customer);
|
||||
$em->flush();
|
||||
|
||||
$this->addFlash('success', 'Votre compte a été créé avec succès ! Connectez-vous.');
|
||||
return $this->redirectToRoute('reservation_login');
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user