1
我有一個問題,即Symfony2表單可以通過驗證,但在提交表單時仍然會生成由唯一約束引起的Doctrine2異常。我可以捕獲這個PDOException,但我想要做的是使表單失效,並設置一個表示該實體的特定屬性是重複的表單錯誤。我的代碼是:我可以使Symfony2表單無效嗎?
$entity = new Tag();
$request = $this->getRequest();
$form = $this->createForm(new \Acme\AdminBundle\Form\Tag(), $entity);
$form->bindRequest($request);
if ($form->isValid()) {
$em = $this->getDoctrine()->getEntityManager();
try {
$em->persist($entity);
$em->flush();
return $this->redirect($this->generateUrl('tag_edit', array('id' => $entity->getTagId())));
} catch(ORM\PDOException $e) {
if ($e->getCode() === '23000') {
// What do I do here??
}
}
}
return array(
'entity' => $entity,
'form' => $form->createView()
);
謝謝 - 非常完美。 – gview