【发布时间】:2013-04-07 15:24:32
【问题描述】:
这看起来很简单,但我做错了:
共有三个实体:Fruit、Vegetable 和 Snack。 Snack 具有 id、time 和 food 字段。食物是指任一一种水果或一种蔬菜。所以它基本上是一种多对一/一对多的关系,因为一种零食总是只能容纳一种食物。但目标实体不止一个。
我将如何在 Doctrine2 中映射它?
在了解 Doctrine2 之前我会使用的一个简单解决方案是使用两个字段:food_type 和 food_id。但是我怎样才能将食物类型与正确的实体联系起来呢?我想到了一个 JoinColumns 数组,但找不到连接正确实体的方法。我还查看了映射的超类,因为有一个 DiscriminatorColumn,但这似乎也是错误的方法。如果我做对了,超类本身就不能是一个实体——所以我不能创建一个食物实体。
感谢任何帮助。我确定我在这里遗漏了一些简单的东西。
【问题讨论】:
标签: php database symfony doctrine-orm