16

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

厘米用户:

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
{
    ....
}

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

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

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

Symfony:2.1

4

4 回答 4

29

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

/**
 * @ORM\Entity
 * @ORM\Table(name="listtype")
 */
class ListType
{
    ...
}
于 2013-02-11T18:01:45.853 回答
26

定义基类如下:

/**
 * @ORM\MappedSuperclass
 */
abstract class BaseUser
{
    // ...
}

定义真实实体:

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

因为您缺少基类上的 @MappedSuperclass 注释,所以 Doctrine 会引发您提到的异常。

于 2013-02-02T14:46:43.207 回答
5

就我而言,问题eaccelerator在于它删除了Doctrine使用的所有评论。禁用后eaccelerator它起作用了。您可以禁用您的 php 设置,或者,

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

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

注意:禁用此功能后请清除 symfony2 缓存。

于 2013-02-10T20:22:08.917 回答
5

我有同样的问题。但是为了让它工作,我不得不改变线路:

* @ORM\Table
* @ORM\Entity 
于 2013-11-18T08:17:22.670 回答