相关疑难解决方法(0)

Doctrine:cascade ="remove"vs orphanremoval = true

上面两个选项有什么区别?什么时候最好选择每个选项?

doctrine cascade cascading-deletes symfony

58
推荐指数
1
解决办法
2万
查看次数

(doctrine2 + symfony2)级联删除:完整性约束违规1451

首先,抱歉我的英语不好......

我有四个实体:用户,应用程序,捆绑和实体.以下是他们的关系(级联持续和删除,请参阅下面的代码):

  • 用户1-n申请
  • 应用1-n捆绑
  • 捆绑1-n实体

它工作正常.但是用户可以将他的两个实体作为默认实体,我需要直接访问它们.

所以我添加用户两个字段,entity1和entity2,具有1-1关系.现在我的应用程序崩溃了:

An exception occurred while executing 'DELETE FROM bundle WHERE id = ?' with params {"1":13}:

SQLSTATE[23000]: Integrity constraint violation: 1451 Cannot delete or update a parent row: a foreign key constraint fails (`misc`.`entity`, CONSTRAINT `FK_E284468F1FAD9D3` FOREIGN KEY (`bundle_id`) REFERENCES `bundle` (`id`))
Run Code Online (Sandbox Code Playgroud)

我尝试了几件事,包括在这篇文章中创建的那些,但我无法解决它.

欢迎提出任何帮助,谢谢.

编辑:我需要指出User-> Entity关系是optionnal:User的entity1和entity2可以为null.即使它们都为空,也会发生错误.

这是我的实体定义:

# User :
    /**
     * @ORM\OneToMany(targetEntity="\sfCommands\ContentBundle\Entity\Application", mappedBy="user", cascade={"remove"}, orphanRemoval=true)
     * @ORM\OrderBy({"name" = "ASC"})
     */
    protected $applications; …
Run Code Online (Sandbox Code Playgroud)

referential-integrity cascading symfony doctrine-orm

14
推荐指数
2
解决办法
4万
查看次数