Entity framework 不是有效的实体或映射的超类

Entity framework 不是有效的实体或映射的超类,entity-framework,symfony,doctrine,Entity Framework,Symfony,Doctrine,我有2个捆绑包,1个CMS捆绑包将成为父捆绑包。 我在两个包中都有重复的实体。像UserCMS包中的用户一样,我把它做成了一个抽象类。(不确定这是否是正确的选择。实际上,我想要的是在需要时扩展我的用户实体。) cms用户: abstract class User implements UserInterface 捆绑用户: use MV\CMSBundle\Entity\User as BaseUser; /** * @ORM\Entity(repositoryClass="MV\Name

我有2个捆绑包,1个CMS捆绑包将成为父捆绑包。 我在两个包中都有重复的实体。像
User
CMS包中的用户一样,我把它做成了一个抽象类。(不确定这是否是正确的选择。实际上,我想要的是在需要时扩展我的用户实体。)

cms用户:

abstract class User implements UserInterface
捆绑用户:

use MV\CMSBundle\Entity\User as BaseUser;

/**
 * @ORM\Entity(repositoryClass="MV\NameBundle\Repository\UserRepository")
 * @DoctrineAssert\UniqueEntity(fields={"email"}, message="user.email.already.exist" )
 */
class User extends BaseUser
{
    ....
}
我收到的错误
类“MV\CMSBundle\Entity\User”不是有效的实体或映射的超类。

我在symfony的文档中搜索到了这个页面:但是他们没有添加一些内容xD

哦,不,我不想用FOSUserBundle;)


Symfony:2.1

定义基类如下:

/**
 * @ORM\MappedSuperclass
 */
abstract class BaseUser
{
    // ...
}
定义真实实体:

/**
 * @ORM\Entity
 */
class User extends BaseUser
{
    // ...
}

因为您缺少基类上的@MappedSuperclass注释,所以Doctrine抛出了您提到的异常。

在我的例子中,问题是
eaccelerator
,因为它去掉了Doctrine使用的所有注释。禁用
eaccelerator
后,它工作了。您可以禁用php设置或

web/app_dev.php
web/app.php
文件中

<?php
    ini_set('eaccelerator.enable', 0);
    ini_set('eaccelerator.optimizer', 0);
    //rest of the code.

在我的例子中,我的类定义中缺少
*@ORM\Entity

/**
 * @ORM\Entity
 * @ORM\Table(name="listtype")
 */
class ListType
{
    ...
}

我也有同样的问题。但为了让它发挥作用,我不得不改变思路:

* @ORM\Table
* @ORM\Entity 

尝试使用\MV\CMSBundle\Entity\User作为BaseUserSame,这不重要。