createQueryBuilder('c') ->leftJoin('c.user', 'u') ->andWhere('u.id = :userId')->setParameter('userId', $userId) ->orderBy('c.id', 'desc') ; } /** * Retrieves all comments for a user. * * @param int $userId * * @return QueryBuilder */ public function getBuilderForAllByUser($userId) { return $this ->getBuilderByUser($userId) ; } /** * Get comment for this id. * * @param int $commentId * * @return array */ public function findCommentById($commentId) { return $this->createQueryBuilder('c') ->andWhere('c.id = :commentId')->setParameter('commentId', $commentId) ->getQuery()->getSingleResult() ; } /** * Find comments for entry id. * * @param int $entryId * @param int $userId * * @return array */ public function findCommentsByPageId($entryId, $userId) { return $this->createQueryBuilder('c') ->where('c.entry = :entryId')->setParameter('entryId', $entryId) ->andwhere('c.user = :userId')->setParameter('userId', $userId) ->getQuery()->getResult() ; } /** * Find last comment for a given entry id. Used only for tests. * * @param int $entryId * * @return array */ public function findLastCommentByPageId($entryId, $userId) { return $this->createQueryBuilder('c') ->where('c.entry = :entryId')->setParameter('entryId', $entryId) ->andwhere('c.user = :userId')->setParameter('userId', $userId) ->orderBy('c.id', 'DESC') ->setMaxResults(1) ->getQuery() ->getOneOrNullResult(); } }