我仍在尝试理解Doctrine2中的多态关联。
据我了解,基本的多态关联通过使用继承来工作。例如,如果我有表格/类OWNER
,CAT
和DOG
,那么启用$owner->pet
指向CAT
或DOG
表,就是让它们各自扩展第四个类PET
,这被称为映射的超类。然后$owner->pet
可以返回CAT
或DOG
,具体取决于已分配的内容,而Doctrine2可以区分它们。
这很简单。但是,如果我想要有两个可以指向同一个对象的多态关联呢?例如,假设我有一个ADMIRALS
表,每个表都可以命令FLEET
或PLANET
。我们还要说我有SECTORS
的表格,每个表格都可以包含PLANET
或MOON
。
我们假设我希望$admiral->command
同时引用PLANETS
和FLEETS
,并且我希望$sector->contents
同时引用PLANETS
和MOONS
。 PLANET
无法将command
和contents
扩展为映射的超类。是否有不同的方法使这项工作?
答案 0 :(得分:0)