我有两个实体user
和college
,它们具有双向关系
这是我的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无法删除或 更新父行:外键约束失败
任何正确方向的推动都会非常感激。
答案 0 :(得分:0)
如果进行级联分离,则doctrine会分离其所管理对象的链接元素。这意味着它不会以任何方式被删除,只是该学说没有&#34;看到&#34;对象了。但是你的SQL数据库仍然关注它的完整性!这就是SQL
引发错误的原因你只需将列置为可空。
我没有使用yml映射,但它应该等同于@ORM\JoinColumn(name="college_id", referencedColumnName="id", nullable=true)