/** * @return Doctrine\ORM\Query */ public function getQuery() { $query = $this->queryBuilder->getQuery(); if (method_exists($query, 'setHint')) { $query->setHint(Query::HINT_INCLUDE_META_COLUMNS, true); } return $query; }
public function getItems($offset, $itemCountPerPage) { $this->_query->setFirstResult($offset); $this->_query->setMaxResults($itemCountPerPage); $a = $this->_query->getQuery()->getResult(); $r = array(); foreach ($a as $i) { $r[] = new $this->_modelName($i); } return $r; }
public function getFriendsFriendShips($userId) { $queryBuilder = new \Doctrine\ORM\QueryBuilder($this->entityManager); $queryBuilder->select("ffs")->from(self::MODEL, "ffs")->join("ffs.user_source", "f")->join("f.friendships_as_target", "mfs")->join("mfs.user_source", "me")->where("me.id = :user_id")->andWhere("ffs.accepted = 1")->andWhere("mfs.accepted = 1")->groupBy("ffs.user_target")->setParameter("user_id", $userId); $result = $this->getResults($queryBuilder->getQuery()); return $result; }
/** * Returns the whole aggregated feed. You can limit the list giving any number. * * @return List<UnifiedSocialEntityInterface> */ public function getFeed($limit = false) { if ($limit !== false && is_int($limit)) { $this->qb->setMaxResults($limit); } $this->qb->andWhere('e.approved = 1'); return $this->qb->getQuery()->getResult(); }
/** * Retorna o itens da paginação * * @param int $iInicioPaginacao * @param int $iItensPorPagina * @return array */ public function getItems($iInicioPaginacao, $iItensPorPagina) { $this->_query->setFirstResult($iInicioPaginacao); $this->_query->setMaxResults($iItensPorPagina); $aResultado = $this->_query->getQuery()->getResult(); $aRetorno = array(); foreach ($aResultado as $sModelo) { $aRetorno[] = new $this->_modelName($sModelo); } return $aRetorno; }
/** * Returns the whole aggregated feed. You can limit the list giving any number. * * @param bool $onlyApproved if only approved elements should be returned. default is true. * @param int $limit how many items should be fetched at maximum * @param array $requestIds which requestIds should be fetched, if left empty all are fetched * @return array<TwitterEntityInterface> List of twitter entities */ public function getFeed($onlyApproved = true, $limit = false, array $requestIds = array()) { $result = array(); foreach ($this->apiRequests as $request) { if (count($requestIds) > 0 && !in_array($request->getId(), $requestIds)) { continue; } $this->initializeQueryBuilder($request->getId()); if ($limit !== false && is_int($limit)) { $this->qb->setMaxResults($limit); } if ($onlyApproved) { $this->qb->andWhere('e.approved = true'); } $this->qb->andWhere('e.requestId = :requestId')->setParameter('requestId', $request->getId()); $result = array_merge($result, $this->qb->getQuery()->getResult()); } return $result; }
/** * It is possible to use query builder with additional columns. * In this case, only item at index [0] is returned, because * it should be an entity object. * @return array */ public function getData() { // Paginator is better if the query uses ManyToMany associations $usePaginator = $this->qb->getMaxResults() !== NULL || $this->qb->getFirstResult() !== NULL; $data = array(); if ($usePaginator) { $paginator = new Paginator($this->getQuery()); // Convert paginator to the array foreach ($paginator as $result) { // Return only entity itself $data[] = is_array($result) ? $result[0] : $result; } } else { foreach ($this->qb->getQuery()->getResult() as $result) { // Return only entity itself $data[] = is_array($result) ? $result[0] : $result; } } return $data; }
public function getListLikedByUser($userId) { $queryBuilder = new \Doctrine\ORM\QueryBuilder($this->entityManager); $queryBuilder->select("b")->from(self::MODEL, "b")->join("b.userbooks", "ub")->join("ub.user", "u")->where("u.id = :user_id")->andWhere("(ub.rating >= 4 OR ub.is_wished = 1)")->andWhere("ub.is_deleted != 1")->orderBy("ub.last_modification_date", "DESC")->setParameter("user_id", $userId); // We don't cache this result as the function is only called by the book svc which does the caching $result = $this->getResults($queryBuilder->getQuery()); return $result; }
/** * @return array */ public function getLimitedResult($limit) { return $this->qb->getQuery()->setMaxResults($limit)->getResult(); }
public function getListWishedBooks($userId, $limit, $useCache) { $cacheId = $this->getCacheId(__FUNCTION__, array($userId)); $queryBuilder = new \Doctrine\ORM\QueryBuilder($this->entityManager); $queryBuilder->select("ub, u, b, r, p, c")->from(self::MODEL, "ub")->join("ub.user", "u")->join("ub.book", "b")->leftJoin("ub.reading_state", "r")->leftJoin("b.publisher", "p")->leftJoin("b.contributors", "c")->orderBy("ub.id", "DESC")->where("u.id = :id")->andWhere("ub.is_deleted = 0")->andWhere("ub.is_wished = 1")->setParameter("id", $userId); if ($limit != -1) { $queryBuilder->setMaxResults($limit); } $result = $this->getResults($queryBuilder->getQuery(), $cacheId, $useCache); return $result; }
public function getListByKeyword($keyword) { $queryBuilder = new \Doctrine\ORM\QueryBuilder($this->entityManager); $queryBuilder->select("u")->from(self::MODEL, "u")->Where("u.email LIKE :keyword")->orWhere("u.user_name LIKE :keyword")->orWhere("u.last_name LIKE :keyword")->orWhere("u.first_name LIKE :keyword")->setParameter("keyword", "%" . $keyword . "%"); $result = $this->getResults($queryBuilder->getQuery()); return $result; }