【发布时间】:2013-11-14 18:49:18
【问题描述】:
我在具有大量交叉引用数据的系统中使用 Gedmo Doctrine Extensions 和 SoftDeleteable 扩展。我遇到了以下情况:
- 产品 A 分配给 供应商 B
- 供应商 B 被 [软] 删除
- 产品 A 现在在序列化时会抛出“实体不存在”,因为“供应商”外键仍然具有 供应商 B 的 ID,即使该实体已被软删除并且可以'不被提取。
需要注意的是我不希望delete级联,也就是说我不想仅仅因为Supplier B被删除了就删除Product A .当供应商记录被删除时,我只需要将供应商外键设置为 NULL(或被 JMS 解释为 NULL)。
这是一种常见的情况,我无法想象其他人没有遇到这种情况,但我找不到任何答案。有人有什么建议吗?
谢谢, -内特
【问题讨论】:
-
您需要在Product表中手动设置
null“供应商”外键。这取决于您如何构建 Product 模型来级联或不级联关系。 -
那么是否会通过在供应商实体被删除之前触发的事件侦听器手动执行查找并将键重置为 NULL?
标签: php symfony doctrine-orm