Symfony формы и обработка Doctrine нарушения ограничений изящно - PullRequest
0 голосов
/ 05 апреля 2020

Я создал форму, используя построитель форм symfony, для создания новых записей с помощью менеджера сущностей doctrine, но при создании новых записей я иногда сталкиваюсь с Integrity constraint violation: 1062 Duplicate entry'. Я хотел бы правильно обработать это исключение, используя принципы DRY, каков наилучший способ сделать это изящно?

Желательно, чтобы у меня было предупреждение с предупреждением даже перед отправкой, но после отправки также было бы приемлемо.

FlightController. php

/**
 * @Route(path="/new", name="flight_new", methods={"GET", "POST"})
 */
public function new(Request $request)
{
  //Create New Flight
  $flight = new Flight($this->getDoctrine()->getManager());
  $form = $this->createForm(FlightType::class, $flight);

  $form->handleRequest($request);
  if ($form->isSubmitted() && $form->isValid()) {
    $flight = $form->getData();

    $entityManager = $this->getDoctrine()->getManager();
    $entityManager->persist($flight);
    $entityManager->flush();

    return $this->redirectToRoute("flight_list");

  }
  return $this->render('flight/new.html.twig', array('form' => $form->createView()));
}

Flight. php Ограничение является составным ключом:

/**
 * @ORM\Entity(repositoryClass="App\Repository\FlightRepository")
 * @ORM\Table(name="flight",
 *      uniqueConstraints={@ORM\UniqueConstraint(name="flight",columns={"ap_from","ap_to"})}
 * )
 */
class Flight
{

Заранее спасибо

...