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


Symfony unable to update the linked ManyToOne object on delete

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

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

这是我的College.org.ml

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

我只想做的是,当我从数据库中删除一个大学对象时,user表中的college_id应该变成null,而不是删除链接的User对象

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

    joinColumn:
        onDelete: CASCADE

如果我使用

cascade: [detach]

我得到错误

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

任何朝着正确方向的努力都将不胜感激。

如果执行级联分离,则原则分离其所管理对象的链接元素。这意味着它没有以任何方式被删除,只是学说不再"看到"物体。但是您的SQL数据库仍然要注意其完整性!这就是SQL 抛出错误的原因

您只需要将列设置为null即可。我不使用yml映射,但它应该相当于@ORM'JoinColumn(name="college_id", referencedColumnName="id", nullable=true)