在我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 *來改進標題。 –
這是一個公平點,只提及它,因爲它是我的情況:) –