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 映射
我创建了一个带有 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 映射