Symfony2 ManyToMany反向结果

时间:2013-07-31 10:06:37

标签: symfony doctrine-orm many-to-many entity

我有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关系的“反向结果”?

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以在queryBuilder中使用 NOT MEMBER OF 表达式:

...
->andWhere(':user NOT MEMBER OF g.users')
->setParameter('user', $user)
...