2017-10-23 14 views
2

ユーザーは1つのフォームに記入してから、複数のDoctrineエンティティ(Companyエンティティと関連するUserエンティティ)を作成して保存する必要があります。埋め込みフォームを介して中間のエンティティを格納する方法

私は埋め込みフォームと、関連するエンティティのメインフォームにどのように「サブフォーム」を埋め込むことができるかについて読んだことがあります。

しかし、私の2つのエンティティは、仲介エンティティTeam Membership - 参加テーブルcompanies_usersの上に構築されたエンティティを介して関連しています。この関係は、各関係に関するいくつかの余分なデータを追跡するので必要です。

私はこれに関する文書を見つけることができませんでした。この場合、embeddedフォームを使用することは可能ですか、実際的ですか?ターゲット関連エンティティ(User)の埋め込みフォームも中間エンティティを作成する必要があると定義する方法はありますか?

私はバリデータアノテーションが好きで、フォームクラスに直接バリデーションルールを設定しても十分に頑丈に見えないし、非常に控えめだと思うので、フォームにデータクラスを持たせたいです。

ありがとうございました。

答えて

2

フィールドが含まれていなくても、中間エンティティのフォームを作成できます。 TeammembershipTypeで、その後

 
    public function buildForm(FormBuilderInterface $builder, array $options) 
    { 
     $builder 
      ->add('team_membership', TeammembershipType::class, [ 
       'label' => false 
      ]); 
    } 

と::私は実際に、私のプロジェクトのいくつかでは、このようなものを、これを使用

 
    public function buildForm(FormBuilderInterface $builder, array $options) 
    { 
     $builder 
      ->add('user', UserType::class, [ 
       'label' => false 
      ]); 
    } 

あなたはまた、中間形式のイベントでチームメンバーシップのデータを設定することができます。

+0

ありがとうございます。 –

関連する問題