繁体   English   中英

Symfony 3形式和一对多

[英]Symfony 3 form and one-to-many

这似乎是一项容易的任务,但是我找不到最佳的解决方案。 我在教练和团队之间存在一对多的双向关系(一个教练可以有很多团队)。 当我添加/编辑教练时,我想分配他的团队。 我没有错误,但是什么也没发生。 我的猜测是,这与关系,拥有方面或类似方面有关。 还有另一种关系:球员-球队,一切都很好,但是在这种情况下,我有一个球员表格,我将球队分配给一个球员。

因此,如果我从“许多”的角度提交表单,则可以使用,但是当我尝试从“一个”的角度提交表单时,我在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');
            },              
        )); 

有没有办法使它与一对多关系一起工作? 还是我应该切换到多对多?

实际上,它与拥有侧和反向侧相关。 如果将关系添加为拥有方,它将起作用,但反之则不行。 阅读Doctrine文档中的这个以及关于拥有方的这个。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM