2014-05-10 158 views
0

我创建了一个多对多的关系,并通过命令行生成crud。我有用户和组。symfony 2多对多关系crud

USER 
    /** 
    * @ORM\ManyToMany(targetEntity="Grup", mappedBy="users") 
    * @ORM\JoinTable(name="user_has_grup", 
    *  joinColumns={@ORM\JoinColumn(name="grup_id", referencedColumnName="id")}, 
    *  inverseJoinColumns={@ORM\JoinColumn(name="user_id", referencedColumnName="id")} 
    *) 
    */ 
    protected $grups; 

Grup 
    /** 
    * @ORM\ManyToMany(targetEntity="User", inversedBy="grups") 
    * @ORM\JoinTable(name="user_has_grup", 
    *  joinColumns={@ORM\JoinColumn(name="grup_id", referencedColumnName="id")}, 
    *  inverseJoinColumns={@ORM\JoinColumn(name="user_id", referencedColumnName="id")} 
    *) 
    */ 
    protected $users; 

当我创建用户组显示,但我不能将用户分配给组。仍然当我去编辑组我可以分配用户和它的作品。

如果我想在两个方向都能做到,我需要更改哪些内容?有没有任何教条实体的变化或在控制器?

回答

0

不知道这是否是你的问题,因为没有足够的代码...
但我认为这可以帮助:Symfony2-Doctrine: ManyToMany relation is not saved to database
和官方文件:Owning and Inverse Side on a ManyToMany association

+0

解决: 这里就是答案 HTTP: //docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/unitofwork-associations.html 反面必须使用OneToOne,OneToMany或ManyToMany映射声明的mappedBy属性。 mappedBy属性包含拥有端的关联字段的名称。 拥有方必须使用OneToOne,ManyToOne或ManyToMany映射声明的inversedBy属性。 inversedBy属性包含反面的关联字段的名称。 – user2217288