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->setPassword($hashedPassword);
|
||||||
$customer->setRoles(['ROLE_USER']);
|
$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(
|
$mailer->send(
|
||||||
$customer->getEmail(),
|
$customer->getEmail(),
|
||||||
$customer->getName() . " " . $customer->getSurname(),
|
$customer->getName() . " " . $customer->getSurname(),
|
||||||
@@ -974,9 +982,6 @@ class ReserverController extends AbstractController
|
|||||||
['customer' => $customer]
|
['customer' => $customer]
|
||||||
);
|
);
|
||||||
|
|
||||||
$em->persist($customer);
|
|
||||||
$em->flush();
|
|
||||||
|
|
||||||
$this->addFlash('success', 'Votre compte a été créé avec succès ! Connectez-vous.');
|
$this->addFlash('success', 'Votre compte a été créé avec succès ! Connectez-vous.');
|
||||||
return $this->redirectToRoute('reservation_login');
|
return $this->redirectToRoute('reservation_login');
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user