我有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
{
....
}
我收到错误Class "MV\CMSBundle\Entity\User" is not a valid entity or mapped super class.
我搜索了symfony的文档并找到了这个页面:entities-entity-mapping但他们没有添加一些内容xD
哦,不,我不想使用FOSUserBundle;)
Symfony:2.1
答案 0 :(得分:23)
就我而言,我在班级定义中遗漏了* @ORM\Entity
。
/**
* @ORM\Entity
* @ORM\Table(name="listtype")
*/
class ListType
{
...
}
答案 1 :(得分:21)
按如下方式定义基类:
/**
* @ORM\MappedSuperclass
*/
abstract class BaseUser
{
// ...
}
定义真实实体:
/**
* @ORM\Entity
*/
class User extends BaseUser
{
// ...
}
因为你在基类上缺少@MappedSuperclass注释,所以Doctrine会抛出你提到的异常。
答案 2 :(得分:5)
我遇到了同样的问题。但为了让它发挥作用,我不得不改变界限:
* @ORM\Table
* @ORM\Entity