在我Gecko.php
我有以下部分:Symfony的具有一对多的关系2删除实体
/**
* @ORM\OneToMany(targetEntity="Weight", mappedBy="geckoId")
*/
private $weights;
在我Weight.php
我有这样的:
/**
* @ORM\ManyToOne(targetEntity="Gecko", inversedBy="weights")
* @ORM\JoinColumn(name="gecko_id", referencedColumnName="id")
*/
private $geckoId;
我的壁虎删除操作如下:
/**
* Deletes a Gecko entity.
*
* @Route("/{name}", name="gecko_delete")
* @Method("DELETE")
*/
public function deleteAction(Request $request, $name)
{
$form = $this->createDeleteForm($name);
$form->handleRequest($request);
if ($form->isValid()) {
$em = $this->getDoctrine()->getManager();
$entity = $em->getRepository('BreedrGeckoBundle:Gecko')->findOneByName($name);
if (!$entity) {
throw $this->createNotFoundException('Unable to find Gecko entity.');
}
$em->remove($entity);
$em->flush();
}
return $this->redirect($this->generateUrl('gecko'));
}
当我单击表格删除按钮,我得到这个错误:
An exception occurred while executing 'DELETE FROM Gecko WHERE id = ?' with params [5]:
SQLSTATE[23000]: Integrity constraint violation: 1451 Cannot delete or update a parent row: a foreign key constraint fails (
breedr
.weight
, CONSTRAINTFK_615077FC45D556
FOREIGN KEY (gecko_id
) REFERENCESGecko
(id
))
我不知道如何解决这个问题。当数据库中没有特定壁虎的权重时,它们会被删除,但如果有权重,则不会被删除。我非常希望能够在同一时间,壁虎事先删除
感谢
安迪
删除所有重量数据
不知道为什么有人会低估这个,这个问题没有错? –
标题中是否有使用* gecko *的理由?壁虎是Firefox的工程师,也许它迷惑了某人。您可以通过将* gecko *替换为* entity *来改进标题。 –
这是一个公平点,只提及它,因为它是我的情况:) –