1

我正在使用 Symfony2 开发市场应用程序。
我有两个用户角色:buyerseller

“默认”角色是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 关系进行链接buyerseller但 PUGXMultiUserBundle 需要使用带有鉴别器的继承。
这不是问题,我可以更改我的代码并且已经尝试过这样做,但让我困扰的是User该类必须是抽象的。

据我了解,我的课程必须是这样的:

User extends BaseUser (abstract)
Buyer extends User
Seller extends User

但是我有 :

User extends BaseUser (semantically my Buyer class)
Seller extends User

我应该怎么办 ?如何重新组织我的类层次结构?PUGXMultiUserBundle 是否适合我想要的解决方案?

谢谢

4

0 回答 0