连接两个连续的Doctrine映射超类

时间:2017-05-18 09:51:27

标签: symfony doctrine-orm

正如您从标题中可以理解的那样,我的问题是由于我在这个映射上的遗留应用程序:

/** @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部分,我还想让Userabstract可以通过新的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

1 个答案:

答案 0 :(得分:1)

从我自己对Doctrine 2.5和Symfony的测试> = 3.2我可以确认(是)可以使用两个或多个连续/链式映射超类而没有任何问题。

注意:如果自己检查它并不是浪费时间,我认为这些信息应该添加到Doctrine文档中以澄清任何可能的dubt,因为它没有任何成本:-)(但我是唯一有这个疑问的人吗?)。