gpt4 book ai didi

php - 关于删除级联主义

转载 作者:行者123 更新时间:2023-11-30 00:26:50 24 4
gpt4 key购买 nike

我有两个想要链接的实体:UserFolder

我想做的是:

  • 每个文件夹都有一个父文件夹(自引用),但也可能没有父文件夹(允许为空)。

  • 每个用户都有一个默认文件夹(我认为是一对一的),但没有父文件夹。

  • 当我删除用户时,我希望 MySQL 自动删除默认文件夹和子文件夹。

我遇到的问题是我无法删除用户,因为我有一个 FK。错误消息:

#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;
}

?>

最佳答案

您需要将 cascade={"remove"} 部分添加到用户实体中的 $folder 字段。

关于php - 关于删除级联主义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22810464/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com