/** * @param User $client * @return mixed */ public function findNotCompletedInitRebalanceWorkflow(User $client) { /** @var QueryBuilder $qb */ $qb = $this->repository->createQueryBuilder('w'); $qb->where('w.client = :client')->andWhere('w.message_code = :message_code')->andWhere('w.status != :status')->setMaxResults(1)->setParameters(array('client' => $client, 'message_code' => Workflow::MESSAGE_CODE_PAPERWORK_INITIAL_REBALANCE, 'status' => Workflow::STATUS_COMPLETED)); return $qb->getQuery()->getOneOrNullResult(); }
/** * @param string $username * * @return mixed */ public function loadUserByUsername($username) { $q = $this->userRepository->createQueryBuilder('u')->where('u.username = :username OR u.email = :email')->setParameter('username', $username)->setParameter('email', $username)->getQuery(); try { $user = $q->getSingleResult(); } catch (NoResultException $e) { $message = sprintf('Unable to find an active admin AcmeDemoBundle:User object identified by "%s".', $username); throw new UsernameNotFoundException($message, 0, $e); } return $user; }
/** * @param Criteria $criteria */ public function search(Criteria $criteria) { $qb = $this->repository->createQueryBuilder('e'); $this->buildWhereClause($qb, $criteria); $qb->select(); if ($criteria->getOrderBy()) { $qb->orderBy('e.' . $criteria->getOrderBy(), $criteria->getOrderDir()); } if ($criteria->getOffset()) { $qb->setFirstResult($criteria->getOffset()); } if ($criteria->getLimit()) { $qb->setMaxResults($criteria->getLimit()); } return $qb->getQuery()->execute(); }
/** * {@inheritdoc} */ public function loadUserByUsername($username) { $q = $this->userRepository->createQueryBuilder('u')->select('u, r')->leftJoin('u.role', 'r')->where('u.username = :username OR u.email = :username')->setParameter('username', $username)->getQuery(); $user = $q->getOneOrNullResult(); if (empty($user)) { $message = sprintf('Unable to find an active admin MauticUserBundle:User object identified by "%s".', $username); throw new UsernameNotFoundException($message, 0); } //load permissions if ($user->getId()) { $permissions = $this->session->get('mautic.user.permissions', false); if ($permissions === false) { $permissions = $this->permissionRepository->getPermissionsByRole($user->getRole()); $this->session->set('mautic.user.permissions', $permissions); } $user->setActivePermissions($permissions); } return $user; }
/** * @param Criteria $criteria */ public function search(Criteria $criteria) { $qb = $this->repository->createQueryBuilder(); $this->buildWhereClause($qb, $criteria); $qb->select(); if ($criteria->getOrderBy()) { $qb->sort($criteria->getOrderBy(), $criteria->getOrderDir()); } if ($criteria->getOffset()) { $qb->skip($criteria->getOffset()); } if ($criteria->getLimit()) { $qb->limit($criteria->getLimit()); } $cursor = $qb->getQuery()->execute(); $results = array(); foreach ($cursor as $value) { $results[] = $value; } return $results; }
/** * {@inheritDoc} * * @param \Symfony\Component\HttpFoundation\Request $request Request object * * @return array */ public function findAll(Request $request) { $pageNumber = $request->query->get('page', 1); $numberPerPage = (int) $request->query->get('perPage', 10); $startAt = ($pageNumber - 1) * $numberPerPage; /** @var \Doctrine\ODM\MongoDB\Query\Builder $queryBuilder */ $queryBuilder = $this->repository->createQueryBuilder(); // *** do we have an RQL expression, do we need to filter data? $filter = $request->query->get('q'); if (!empty($filter)) { // set filtering attributes on request $request->attributes->set('filtering', true); $queryBuilder = $this->doRqlQuery($queryBuilder, $filter); } else { // @todo [lapistano]: seems the offset is missing for this query. /** @var \Doctrine\ODM\MongoDB\Query\Builder $qb */ $queryBuilder->find($this->repository->getDocumentName()); } // define offset and limit if (!array_key_exists('skip', $queryBuilder->getQuery()->getQuery())) { $queryBuilder->skip($startAt); } if (!array_key_exists('limit', $queryBuilder->getQuery()->getQuery())) { $queryBuilder->limit($numberPerPage); } else { $numberPerPage = (int) $queryBuilder->getQuery()->getQuery()['limit']; } /** * add a default sort on id if none was specified earlier * * not specifying something to sort on leads to very weird cases when fetching references */ if (!array_key_exists('sort', $queryBuilder->getQuery()->getQuery())) { $queryBuilder->sort('_id'); } // run query $query = $queryBuilder->getQuery(); $records = array_values($query->execute()->toArray()); $totalCount = $query->count(); $numPages = (int) ceil($totalCount / $numberPerPage); if ($numPages > 1) { $request->attributes->set('paging', true); $request->attributes->set('numPages', $numPages); $request->attributes->set('perPage', $numberPerPage); } return $records; }
/** * @param $item * @param \DateTime $date * @return bool */ public function isAvailableForDate($item, \DateTime $date) { $qb = $this->repository->createQueryBuilder('b'); $results = $qb->select('b.id')->where('b.start <= :date AND b.end >= :date')->andWhere('b.item = :item')->setParameter('item', $item)->setParameter('date', $date)->getQuery()->getResult(); return count($results) === 0; }
/** * Get a list of Citations. * * @param int $limit the limit of the result * @param int $offset starting from the offset * * @return array */ public function all($limit = 5, $offset = 0) { return $this->repository->createQueryBuilder('c')->join('c.articles', 'a')->where('a.id = :articleId')->setParameter('articleId', $this->getArticle()->getId())->setFirstResult($offset)->setMaxResults($limit)->getQuery()->getResult(); }
/** * @inheritdoc */ public function createQuery($data) { $qb = $this->repository->createQueryBuilder($this->alias); $query = $qb->getQuery(); return $query; }
/** * @return \Kontuak\PeriodicalMovement\Collection */ public function collection() { return new Collection($this->repository->createQueryBuilder('pm')); }
public function findAllPublicWithQuery($query, $page, $itemPerPage) { $publicCriteria = new Criteria(); $publicCriteria->where($publicCriteria->expr()->eq('r.published', true)); $queryCriteria = new Criteria(); $queryCriteria->where($queryCriteria->expr()->contains('r.title', $query)); $queryCriteria->orWhere($queryCriteria->expr()->contains('r.content', $query)); $orderCriteria = new Criteria(); $orderCriteria->orderBy(['r.dateUpdated' => 'DESC']); /** @var QueryBuilder $queryBuilder */ $queryBuilder = $this->objectRepository->createQueryBuilder('r'); $queryBuilder->addCriteria($publicCriteria); $queryBuilder->addCriteria($queryCriteria); $queryBuilder->addCriteria($orderCriteria); $queryBuilder->setFirstResult(($page - 1) * $itemPerPage); $queryBuilder->setMaxResults($itemPerPage); return new Paginator($queryBuilder); }