Я работаю над приложением на торговой площадке с Symfony2.
У меня есть две роли пользователя: buyer
а также seller
,
Роль по умолчанию — это buyer
поскольку все зарегистрированные пользователи смогут использовать торговую площадку в качестве покупателя.
Я сейчас пользуюсь FOSUserBundle
для управления пользователями, но я недавно застрял, когда я хотел реализовать seller
часть приложения.
Мне нужно иметь три службы «регистрации», либо:
buyer
это основная регистрационная форма, которую я создал с помощью FOSUserBundleseller
, тогда мне нужна другая форма регистрации с более обязательными полями, но в любом случае пользователь с ролью 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 подходящим решением для того, что я хочу?
Спасибо
Задача ещё не решена.
Других решений пока нет …