我的用户实体上有一个自引用的多对多关系,因为他们可以有许多关注者或关注许多其他用户。
我现在尝试在用户存储库中编写一个查询,该查询将确定一个用户是否关注另一个用户。
我尝试直接在 user_relations (映射表)上编写查询,但它不允许我这样做,因为它与用户实体无关。
所以我尝试了:
$query = $this->createQueryBuilder('u')
->select('count(u.id)')
->innerJoin('u.following', 'r')
->where('u.id = :userID')
->where('r.from_id = :followingID')
->setParameter('userID', $userId)
->setParameter('followingID', $followingId)
这会导致错误,指出用户实体没有名为 from_uid 的字段。
我到底怎样才能正确实现这一目标?
最佳答案
您可以使用MEMBER OF
学说关键字
$query = $em->createQuery('SELECT u.id FROM User u WHERE :followingID MEMBER OF u.following');
$query->setParameter('followingID', $followingId);
$ids = $query->getResult();
关于mysql - Symfony 2 自引用多对多存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17764449/