Symfony2:实体扩展 MappedSuperClass 扩展 FOSUserBundle 用户

Symfony2: Entity extends MappedSuperClass extends FOSUserBundle User

我创建了一个带有 SuperUser MappedSuperClass 的 BaseBundle,他扩展了 FOSUserBundle User

use FOS\UserBundle\Model\User as FOSUser;

/*
 * @ORM\MappedSuperclass
 */
class SuperUser extends FOSUser
{
  /**
   * @var string
   * @ORM\Column(name="locale", type="string", nullable=true)
   */
  protected $locale;
}

在我的项目中,我安装了我的 BaseBundle。我创建了一个扩展我的 SuperUser class.

的用户实体
/*
 * User class
 */
class User extends SuperUser
{
   /**
    * @var string
    */
   private $fullName;
}

问题是当我创建 table 时,Doctrine 只能看到 FOSUser 属性和 User 属性,但看不到我的 SuperUser 属性。我只能看到 fullName 和 FOSUser 属性。

我的超级用户 class 被绕过..

我注意到 User class 使用 YAML 标记,SuperUser 使用 PHP Annotation 而 FOSUser Class 使用 XML 标记。我不知道这是否会造成问题。

来自文档:

A bundle can accept only one metadata definition format. For example, it's not possible to mix YAML metadata definitions with annotated PHP entity class definitions.

尝试添加 MappedSuperClass 的 YML 映射