正如您从标题中可以理解的那样,我的问题是由于我在这个映射上的遗留应用程序:
/** @MappedSuperclass */
abstract class BaseUser
{
// ... common fields (no associations)
}
/** @Entity */
class Admin extends BaseUser
{
// ... with specific fields/associations for admin users
}
/** @Entity */
class User extends BaseUser
{
// ... with specific fields/associations for front-end users
}
但是现在我需要有2个不同的用户类型和不同的dashboard
部分,我还想让User
类abstract
可以通过新的2种类型进行扩展:
/** @MappedSuperclass */
abstract class User extends BaseUser
{
// ...
}
/** @Entity */
class StandardUser extends User
{
// ... with specific fields/associations for standard users
}
/** @Entity */
class AgentUser extends User
{
// ... with specific fields/associations for agent users
}
我已经做了一些研究,显然我也读过Doctrine documentation about Mapped Superclasses,但如果可能有两个或更多连续的MappedSuperclass
,则没有明确说明。
所以我的问题是:这可能吗?如果没有,还有另一种选择吗?
PS:我使用Symfony 3.2和Doctrine 2.5
答案 0 :(得分:1)
从我自己对Doctrine 2.5和Symfony的测试> = 3.2我可以确认(是)可以使用两个或多个连续/链式映射超类而没有任何问题。
注意:如果自己检查它并不是浪费时间,我认为这些信息应该添加到Doctrine文档中以澄清任何可能的dubt,因为它没有任何成本:-)(但我是唯一有这个疑问的人吗?)。