Skip to content

Instantly share code, notes, and snippets.

@EnchanterIO
Created September 26, 2015 17:31
Show Gist options
  • Save EnchanterIO/21ae0444a8a250895ab1 to your computer and use it in GitHub Desktop.
Save EnchanterIO/21ae0444a8a250895ab1 to your computer and use it in GitHub Desktop.
Symfony queryBuilder subquery
/**
* @param User $user
* @param int $limit
* @param int $offset
* @return User[]
*/
public function getUserFollowers(User $user, $limit = 20, $offset = 0)
{
$_followersIds = $this->getEntityManager()
->createQueryBuilder()
->select('IDENTITY(r.followeduser)')
->from($this->getEntityName(), 'r')
->where('r.followeeuser = :user')
->andWhere('r.followeduser !=:user')
->setParameter('user', $user)
->orderBy('r.id', 'DESC')
->setFirstResult($offset)
->setMaxResults($limit)
->getQuery()
->getResult();
$_usersQb = $this->getEntityManager()->createQueryBuilder();
$_usersQb
->select('u')
->from('UserBundle:User', 'u')
->where('u.id IN (:followersIds)')
->setParameter('followersIds', array_values($_followersIds));
return $_usersQb->getQuery()->getResult();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment