Я создал форму, используя построитель форм 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
{
Заранее спасибо