【发布时间】:2017-05-23 15:36:27
【问题描述】:
假设我们有名为 Element 的实体,这些实体可能属于名为 Layout 的实体。元素和布局具有ManyToOne 关系,其中许多元素属于一个Layout。
使用的数据库引擎是 MySQL,另外我们使用唯一键,layout_id 是其中的一部分。因此,因此我们在Elements 表中有一个名为layout_id 的列,它不能是null(因为复合唯一键),并且默认为0。 0 的值是一个神奇的值,在整个代码库中被视为“未分配布局”(因此,Element 和 Layout 之间没有 FK)。
Doctrine ORM 的问题在于它尝试加载 ID 为 0 的布局,但由于它不存在而无法找到。我们无法创建 ID 为 0 的 Layout 条目,因为 Layouts 有其他外键并且还有其他约束。
有没有关于如何克服这个问题的建议。基本上当Element中的layout_id是0时,我们不想加载Layout。
【问题讨论】:
标签: php mysql doctrine-orm composite-primary-key composite-key