嗨,我和这里有同样的问题:多对多自我关系与额外字段?但我找不到答案:/我首先尝试了 ManyToOne 并在另一个站点 OneToMany ......但后来我无法使用类似的东西
public function hasFriend(User $user)
{
return $this->myFriends->contains($user);
}
因为有一些这个问题:
This function is called, taking a User type $user variable and you then use the contains() function on $this->myFriends.
$this->myFriends 是请求的 ArrayCollection(与 User 的类型如此不同),并且来自关于 contains() 的原则文档:
The comparison of two elements is strict, that means not only the value but also the type must match.
那么用额外字段解决这种多对多关系的最佳方法是什么?或者,如果我要回去设置 onetomany 和 manytoone 关系,我该如何修改 hasFriend 方法?例如检查 ID 是否在 ID 的数组集合中。
编辑:我有这张桌子......我需要的是:1.选择我的朋友......和我的追随者......检查我是否与他成为朋友。(因为他可以和我成为朋友,而我不必和他在一起......就像在推特上一样)。我可以做很多,但我需要额外的字段,例如:“查看”“他订阅我的时间”,正如您在我的桌子上看到的那样。
并进行这样的查询,然后能够在树枝中检查是否(app.user.hasFriend(follower)或类似的东西)
$qb = $this->createQueryBuilder('r')
->select('u')
->innerJoin('UserBundle:User', 'u')
->Where('r.friend_id=:id')
->setParameter('id', $id)
->orderBy('r.time', 'DESC')
->setMaxResults(50);
return $qb->getQuery()
->getResult();