2017-11-24 18 views
0

これは簡単な作業のようですが、私は最良の解決策を見つけられません。私はトレーナーとチームの間に双方向の一対多の関係があります(1人のトレーナーは多くのチームを持つことができます)。トレーナーを追加/編集するときにチーム/チームを割り当てたい。私はエラーはありませんが、何も起こりません。私の推測では、これには、関係を持つ、何か似たようなものがあるということがあります。別の関係があります:選手チームとすべてがうまくいきますが、この場合は選手のフォームがあり、選手にチームを割り当てます。Symfony 3形式と1対多数

私は "多くの"パースペクティブからフォームを提出するとうまくいきますが、 "1つの"パースペクティブからしようとすると、まだdbでnullになり、リレーションが確立されません。

Trainer.php:

/** 
* @ORM\OneToMany(targetEntity="Team", mappedBy="trainer") 
*/ 
private $teams; 
... 
$this->teams = new ArrayCollection(); 

Team.php:

/** 
* @ORM\ManyToOne(targetEntity="Trainer", inversedBy="teams") 
* @ORM\JoinColumn(name="trainer_id", referencedColumnName="id") 
*/ 
private $trainer; 

TrainerType.php:

 ->add('teams', EntityType::class, array(
      'class' => 'AppBundle:Team', 
      'choice_label' => 'name', 
      'multiple' => true, 
      'expanded' => true, 
      'label' => 'Teams', 
      'query_builder' => function (EntityRepository $er) { 
       return $er->createQueryBuilder('t') 
        ->where('t.isMyTeam = 1')  
        ->orderBy('t.name', 'ASC'); 
      },    
     )); 

それは、多くの関係に1を動作させる方法はあります?それとも、多対多に切り替える必要がありますか?

答えて

1

実際、所有側と逆側に接続されています。あなたが所有側として関係を追加すると、それはうまくいくが、他の方法では動作しない。 Doctrine documentationとこれについてはowning sideをお読みください。

+0

ありがとう、私はuni- /双方向の概念を誤解しました。私は、1対多、1つの結合表との関係をvhangeし、今は動作します。 – Tompo

関連する問題