У меня есть сущность Symfony с аннотацией @UniqueEntity
. Я использую его, чтобы не получать двойные записи в моей базе данных с тем же email
, но я не хочу возвращать пользователю, что электронное письмо уже находится в базе данных (из соображений конфиденциальности).
Как я могу использовать @UniqueEntity
, но поймать ошибку и вернуть пользователю сообщение об успешном завершении?
Код контроллера:
public function register(Request $request, EntityManagerInterface $entityManager, TranslatorInterface $translator): Response
{
$success = false;
$newsletter = new Newsletter();
$form = $this->createForm(NewsletterType::class, $newsletter);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$newsletter = $form->getData();
$entityManager->persist($newsletter);
$entityManager->flush();
$this->addFlash('success', $translator->trans('newsletter.signed_up'));
return $this->redirectToRoute('landing');
}
return $this->render('landing/landing.html.twig', [
'newsletter_form' => $form->createView(),
'newsletter_success' => $success,
]);
}