在过去的几个小时里,我一直在努力解决这个问题,什么都找不到。
我已经配置了FOSUserBundle,并正确激活了组并使其正常工作。但是,用户组关系在user类中定义如下:
/**
* @ORM'ManyToMany(targetEntity="Netlabs'UserBundle'Entity'Group")
* @ORM'JoinTable(name="fos_user_user_group",
* joinColumns={@ORM'JoinColumn(name="user_id", referencedColumnName="id")},
* inverseJoinColumns={@ORM'JoinColumn(name="group_id", referencedColumnName="id")}
* )
*/
protected $groups;
在Group类中,我甚至没有定义$user列表。我尝试了很多"正常"的事情,比如在我的Group类中创建一个$users变量,并定义它与User对象的关系,但使用FOSUserBundle并不好(每次,当已经有关系时,它都会创建一个新表来创建关系)。例如:
/**
* @ORM'ManyToMany(targetEntity="Netlabs'UserBundle'Entity'Group", inversedBy="groups", cascade={"all"})
*
*/
protected $users;
有什么建议吗?
同样,我的主要目标是:我希望能够执行Group->getUsers()
在Group类中,targetEntity必须是User,而不是Group。此外,尝试为$groups属性添加invertedBy规则,并为$users在mappedBy中修改invertedBi。
/**
* @ORM'ManyToMany(targetEntity="Netlabs'UserBundle'Entity'Group", inversedBy="users")
* @ORM'JoinTable(name="fos_user_user_group",
* joinColumns={@ORM'JoinColumn(name="user_id", referencedColumnName="id")},
* inverseJoinColumns={@ORM'JoinColumn(name="group_id", referencedColumnName="id")}
* )
*/
protected $groups;
和
/**
* @ORM'ManyToMany(targetEntity="Netlabs'UserBundle'Entity'User", mappedBy="groups")
*
*/
protected $users;