不是有效实体或映射超类

Mit*_*oof 16 doctrine entity-framework symfony

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

cms用户:

abstract class User implements UserInterface
Run Code Online (Sandbox Code Playgroud)

捆绑用户:

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
{
    ....
}
Run Code Online (Sandbox Code Playgroud)

我得到了错误 Class "MV\CMSBundle\Entity\User" is not a valid entity or mapped super class.

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

哦,不,我不想使用FOSUserBundle;)

Symfony:2.1

Rez*_*a S 24

就我而言* @ORM\Entity,我的班级定义中缺少了.

/**
 * @ORM\Entity
 * @ORM\Table(name="listtype")
 */
class ListType
{
    ...
}
Run Code Online (Sandbox Code Playgroud)


Jas*_*wer 23

定义基类如下:

/**
 * @ORM\MappedSuperclass
 */
abstract class BaseUser
{
    // ...
}
Run Code Online (Sandbox Code Playgroud)

定义真实实体:

/**
 * @ORM\Entity
 */
class User extends BaseUser
{
    // ...
}
Run Code Online (Sandbox Code Playgroud)

因为你在基类上缺少@MappedSuperclass注释,所以Doctrine会抛出你提到的异常.


rav*_*404 5

在我的例子中,问题是eaccelerator因为它删除了Doctrine使用的所有注释.禁用后,eaccelerator它工作.你可以禁用你的PHP设置,或

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

<?php
    ini_set('eaccelerator.enable', 0);
    ini_set('eaccelerator.optimizer', 0);
    //rest of the code.
Run Code Online (Sandbox Code Playgroud)

注意:禁用此功能后,清除symfony2缓存.


小智 5

我有同样的问题.但为了使它工作,但我不得不改变界限:

* @ORM\Table
* @ORM\Entity 
Run Code Online (Sandbox Code Playgroud)