Symfony 3 表单和一对多

Symfony 3 form and one-to-many

这似乎是一件容易的事,但我想不出最好的解决办法。我在培训师和团队之间存在双向一对多关系(一个培训师可以有多个团队)。当我添加/编辑教练时,我想指派他 team/teams。我没有收到任何错误,但什么也没发生。我的猜测是这与关系、拥有方或类似的东西有关。还有另一个关系:玩家 - 团队,一切正常,但在这种情况下,我有一个玩家表单,我将团队分配给一个玩家。

因此,如果我从 "many" 的角度提交表单,它会起作用,但是当我尝试从 "one" 的角度提交表单时,我仍然在数据库中得到 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');
            },              
        )); 

有没有办法让它与一对多关系一起工作?或者我应该切换到多对多?

确实是正反面相连。如果您将关系添加为拥有方,它将起作用,但不会以其他方式起作用。在 Doctrine documentation and this about owning side.

中阅读此内容