我在Doctrine 2.3中使用实体设置有问题(使用Symfony 2)。
有一个类'产品'有一个字段'生产者'。 现在这个制作人可以是一个人(类'用户')或一个组(类'组')。
我想要做的是,现在让User-和Group-class实现一个接口'Producer',然后让我的$ producer-Field映射到Producer-interface。
/**
* @var Producer
* @ORM\OneToOne(targetEntity="..\..\Entity\Producer")
*/
private $producer;
但是这个消息失败了:
"Column name `id` referenced for relation from ..\..\Entity\Product towards
..\..\Entity\Producer does not exist.
在给出第二个想法后,这似乎显而易见 - 但现在我想知道,我怎么能解决这个问题。因为如果我不使用任何持久性并且只使用PHP / Java /无论什么,这种方法都可行 - 但是当映射到数据库时,生活更复杂: - )
继承不是一个解决方案,因为'User'已经扩展了'Person'类,与'Group'没有相似之处,因为在PHP中没有多重继承......
那么,对于这个问题,什么是一个干净的解决方案?
答案 0 :(得分:1)
http://symfony.com/doc/current/cookbook/doctrine/resolve_target_entity.html
此文档应该对您有所帮助。不确定这是您问题的正确答案