我有3个实体。
用户
基
user_groups
用户实体包含用户,组包含组,并且这两个实体与user_groups之间存在ManyToMany关系。
在我的用户实体中,我可以获得分配给我的用户的那些组:
/**
* @ORM\ManyToMany(targetEntity="Groups", inversedBy="users")
* @ORM\JoinTable(name="user_groups",
* joinColumns={@ORM\JoinColumn(name="user_id", referencedColumnName="id")},
* inverseJoinColumns={@ORM\JoinColumn(name="group_id", referencedColumnName="id")}
* )
*/
private $groups;
这很简单,但是如何才能获得那些未分配给我的用户的组?
是否有任何方法可以获得ManyToMany关系的“反向结果”?
谢谢!
答案 0 :(得分:1)
您可以在queryBuilder中使用 NOT MEMBER OF 表达式:
...
->andWhere(':user NOT MEMBER OF g.users')
->setParameter('user', $user)
...