我在 Doctrine 2.3 中的实体设置有问题(使用 Symfony 2)。
有一个“产品”类,它有一个“生产者”字段。现在这个生产者可以是一个人(“用户”类)或一个组(“组”类)。
我想做的是现在让用户和组类实现一个接口“生产者”,然后让我的 $producer-Field 映射到生产者接口。
/**
* @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/其他方法,这种方法会起作用 - 但是当映射到数据库时,生活会更加复杂 :-)
继承不是一个解决方案,因为“用户”已经扩展了“个人”类并且与“组”没有相似之处,并且在 PHP 中没有多重继承之类的东西......
那么,对于这个问题,什么是干净的解决方案呢?