Doctrine2 - 来自两个不同实体的同一实体的多态关联

时间:2014-04-09 14:48:13

标签: php mysql doctrine-orm polymorphic-associations

我仍在尝试理解Doctrine2中的多态关联。

据我了解,基本的多态关联通过使用继承来工作。例如,如果我有表格/类OWNERCATDOG,那么启用$owner->pet指向CATDOG表,就是让它们各自扩展第四个类PET,这被称为映射的超类。然后$owner->pet可以返回CATDOG,具体取决于已分配的内容,而Doctrine2可以区分它们。

这很简单。但是,如果我想要有两个可以指向同一个对象的多态关联呢?例如,假设我有一个ADMIRALS表,每个表都可以命令FLEETPLANET。我们还要说我有SECTORS的表格,每个表格都可以包含PLANETMOON

我们假设我希望$admiral->command同时引用PLANETSFLEETS,并且我希望$sector->contents同时引用PLANETSMOONSPLANET无法将commandcontents扩展为映射的超类。是否有不同的方法使这项工作?

1 个答案:

答案 0 :(得分:0)

您可以尝试使用ResolveTargetEntityListener see

你可以将海军上将的命令属性指向一个接口,该接口由两个PLANETS实现 和FLEETS

同样是扇区的内容