我想要链接两个实体:User
和Folder
我想做的是:
每个文件夹都有一个父文件夹(自引用),但可能没有(允许空值)。
每个用户都有一个默认文件夹(我认为一对一)没有父文件夹。
当我删除用户时,我希望MySQL自动删除默认文件夹和子文件夹。
我遇到的问题是因为我有FK而无法删除用户。 ErrorMessage:
#1451 - Cannot delete or update a parent row: a foreign key constraint fails (`supbox`.`folder`, CONSTRAINT `FK_EB0E0CFB7E3C61F9` FOREIGN KEY (`owner_id`) REFERENCES `user` (`id`))
我的实体:
<?php
class User // Supbox\UserBundle\Entity\User
{
[...]
/**
* @var integer
*
* @ORM\ManyToOne(targetEntity="Supbox\CloudBundle\Entity\Folder")
*/
private $folder;
}
class Folder // Supbox\CloudBundle\Entity\Folder
{
[...]
/**
* @ORM\OneToOne(targetEntity="Supbox\UserBundle\Entity\User" , cascade={"remove"})
* @ORM\JoinColumn(nullable=false)
*/
private $owner;
/**
* @var integer
*
* @ORM\ManyToOne(targetEntity="Supbox\CloudBundle\Entity\Folder")
* @ORM\JoinColumn(nullable=true)
*/
private $parent = null;
}
?>
答案 0 :(得分:0)
您需要将cascade={"remove"}
部分添加到用户实体中的$folder
字段。