spr*_*ain 12 php database symfony doctrine-orm
这看起来很简单,但我无法做到:
有三个实体:Fruit,Vegetable和Snack.小吃有田地id,time和food.食物是一个参考或者一个水果或一种蔬菜.所以它基本上是一对多/一对多的关系,因为一个小吃总是只能容纳一种食物.但是有多个目标实体.
我如何在Doctrine2中映射这个?
在了解Doctrine2之前我会使用的一个简单的解决方案是使用两个字段:food_type和food_id.但是,如何从食物类型到正确的实体建立连接?我想到了一个JoinColumns数组,但找不到连接正确实体的方法.我还看了一下映射的超类,因为有一个DiscriminatorColumn,但它似乎也是错误的方法.如果我做对了,超类本身就不能成为一个实体 - 所以我不能创建一个食品实体.
任何帮助表示赞赏.我确定我在这里错过了一些简单的东西.
您可以创建一个(抽象)映射的超类Food,它可以为Fruit和保存一些基本信息Vegetable.
您的问题的关键字是inheritance mapping,这是它的文档:http://doctrine-orm.readthedocs.org/en/latest/reference/inheritance-mapping.html
然后,您可以在实体关系中引用此映射的超类.