私は Symfony2 を使用してマーケットプレイス アプリに取り組んでいます。
と の 2 つのユーザー ロールがbuyer
ありseller
ます。
「デフォルト」の役割は、buyer
登録されたすべての人がバイヤーとしてマーケットプレイスを使用できるためです。現在、ユーザー管理に使用していますが、アプリの一部FOSUserBundle
を実装したいときに最近行き詰まっています。seller
次のいずれかの 3 つの「登録」サービスが必要です。
- ユーザーが として登録することにしました
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
たが、コードで機能させる方法がわかりません。
buyer
リンクにOneToOne 関係を使用してseller
いますが、PUGXMultiUserBundle では、識別子を使用して継承を使用する必要があります。
これは問題ではありません。コードを変更でき、すでにそれを実行しようとしましたが、User
クラスが抽象的でなければならないということです。
私が理解したことから、私のクラスは次のようでなければなりません:
User extends BaseUser (abstract)
Buyer extends User
Seller extends User
しかし、私は持っています:
User extends BaseUser (semantically my Buyer class)
Seller extends User
私は何をすべきか ?クラス階層を再編成するにはどうすればよいですか? PUGXMultiUserBundle は、私が望むものに対する適切なソリューションですか?
ありがとう