我正在使用 Symfony2 开发市场应用程序。
我有两个用户角色:buyer
和seller
。
“默认”角色是buyer
因为每个注册的人都可以作为买家使用市场。我目前正在用于用户管理,但是当我想实现应用程序的一部分FOSUserBundle
时,我最近陷入困境。seller
我需要三个“注册”服务:
- 用户决定注册为
buyer
,这是我使用 FOSUserBundle 设置的主要注册表单 - 用户决定注册为
seller
,然后我需要另一个包含更多必填字段的注册表单,但无论如何,具有该角色的用户seller
也将拥有该角色buyer
,该角色是所有用户的基本角色。 - 当前注册为的用户
buyer
决定将他的帐户升级为seller
一个,只会询问附加字段
由于每个注册用户都有buyer
角色,所以我的课程如下:
class User extends BaseUser implements UserInterface, \Serializable // Buyer
{
// ...
/**
* @ORM\OneToOne(targetEntity="Seller",inversedBy="user")
* @ORR\JoinColumn(name="seller_id",referencedColumn="id")
**/
private $seller;
}
class Seller
{
// ...
}
为了能够处理多个注册表单,我最近尝试使用PUGXMultiUserBundle
,但我不知道如何使它与我的代码一起使用。
我正在使用 OneToOne 关系进行链接buyer
,seller
但 PUGXMultiUserBundle 需要使用带有鉴别器的继承。
这不是问题,我可以更改我的代码并且已经尝试过这样做,但让我困扰的是User
该类必须是抽象的。
据我了解,我的课程必须是这样的:
User extends BaseUser (abstract)
Buyer extends User
Seller extends User
但是我有 :
User extends BaseUser (semantically my Buyer class)
Seller extends User
我应该怎么办 ?如何重新组织我的类层次结构?PUGXMultiUserBundle 是否适合我想要的解决方案?
谢谢