1

私は 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 は、私が望むものに対する適切なソリューションですか?

ありがとう

4

0 に答える 0