Symfony无法在删除时更新链接的ManyToOne对象

时间:2016-04-20 09:38:21

标签: php symfony doctrine-orm

我有两个实体usercollege,它们具有双向关系 这是我的User.orm.yml

manyToOne:
    college:
        targetEntity: AppBundle\Entity\College
        inversedBy: user

这是我的College.orm.yml

oneToMany:
    user:
        targetEntity: AppBundle\Entity\User
        mappedBy: college

我想要做的是,当我从数据库中删除大学对象时,college_id表中的user应该变为null而不是删除链接的User对象< / p>

我尝试过以下解决方案,但似乎是删除链接对象

    joinColumn:
        onDelete: CASCADE

如果我使用

cascade: [detach]

我收到错误

  

SQLSTATE [23000]:完整性约束违规:1451无法删除或   更新父行:外键约束失败

任何正确方向的推动都会非常感激。

1 个答案:

答案 0 :(得分:0)

如果进行级联分离,则doctrine会分离其所管理对象的链接元素。这意味着它不会以任何方式被删除,只是该学说没有&#34;看到&#34;对象了。但是你的SQL数据库仍然关注它的完整性!这就是SQL

引发错误的原因

你只需将列置为可空。 我没有使用yml映射,但它应该等同于@ORM\JoinColumn(name="college_id", referencedColumnName="id", nullable=true)