我有两个实体(两个实体之间没有关系):A:Relation和B:Post。 我从当前用户收到每条帖子,并在主页上显示这些请求:
public function getPostsCurrentUser($currentUser)
{
$qb = $this->createQueryBuilder('p');
$qb->where('p.member = :member')
->setParameters(['member' => $currentUser])
->orderBy('p.created', 'DESC');
return $qb->getQuery()->getResult();
}
在示例中" A:关系"用户2跟随用户1.当用户跟随其他用户时,我还希望在主页上显示当前用户正在关注的每个用户帖子。 我不知道如何创建此请求。有谁能够帮我 ?
由于
答案 0 :(得分:0)
在http://sqlfiddle.com/#!9/c5a0bf/2的意义上,我建议使用子查询来选择所有被跟踪用户的ID:
class PostRepository {
public function getPostsOfUser($id) {
$query = $this->getEntityManager()->createQuery(
"SELECT p.content
FROM AppBundle:Post p
WHERE p.member = :id
OR p.memberId IN (
SELECT r.friend
FROM AppBundle:Relation r
WHERE r.user = :id
)
ORDER BY p.created DESC"
);
return $query->setParameter('id', $id)
->getResult();
}
}