public function getRoot(ManagedRepositoryInterface $repository) { $className = $repository->getClassName(); if (!isset($this->nodes[$className]) || !isset($this->nodes[$className]['_root'])) { throw new \InvalidArgumentException(sprintf('No root node exists for repository %s', $repository->getName())); } return $this->nodes[$className]['_root']; }
/** * Register a repository * * @param ManagedRepositoryInterface $repository * @return $this * @throws \LogicException */ public function registerRepository(ManagedRepositoryInterface $repository) { $name = $repository->getName(); if ($this->hasRepository($name)) { throw new \LogicException(sprintf('Repository %s is already registered.', $name)); } $event = new ManagedRepositoryEvent($repository); $this->eventDispatcher->dispatch(ManagedRepositoryEvent::REGISTER, $event); $repository = $event->getRepository(); $this->repositories[$name] = $repository; $this->classMap[$repository->getClassName()] = $name; return $repository; }
/** * @param ManagedRepositoryInterface $repository * @param Request $request * @return \Doctrine\ORM\QueryBuilder */ protected function createQueryBuilder(ManagedRepositoryInterface $repository, Request $request) { return $repository->createQueryBuilder($repository->getName()); }
/** * @return int|mixed */ public function getCount() { $alias = $this->repository->getName(); return $this->queryBuilder->select("COUNT({$alias})")->getQuery()->getSingleScalarResult(); }