public function createPaginatorResult(ManagedRepositoryInterface $repository, QueryBuilder $queryBuilder = null) { if ($queryBuilder === null) { $queryBuilder = $repository->createQueryBuilder(); } return new PaginatorResult($repository, $queryBuilder); }
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; }
protected function getFormData(ManagedRepositoryInterface $repository, Request $request) { if (!($id = $request->get('id'))) { throw new HttpException(404, 'No ID was specified.'); } if (!($entity = $repository->find($id))) { $humanName = $repository->queryMetadata('getEntityHumanName'); $message = sprintf('No %s exists with ID %d.', $humanName, $id); throw new HttpException(404, $message); } $formData = new \stdClass(); $formData->entity = $entity; return $formData; }
public function __construct(ManagedRepositoryInterface $repository, UrlGeneratorInterface $urlGenerator, ControllerNodeInterface $currentControllerNode = null, $routeName = 'cms') { $rootNode = $repository->queryMetadata('getRootCmsNode'); parent::__construct($rootNode, $routeName, $urlGenerator); $this->repository = $repository; $this->currentControllerNode = $currentControllerNode; $diff = $currentControllerNode === null ? [] : [$currentControllerNode->getActionName() => null]; foreach (array_diff(['index', 'add'], array_keys($diff)) as $action) { if (!$this->hasChild($action) && $repository->queryMetadata('hasCmsNode', compact('action'))) { $node = $repository->queryMetadata('getCmsNode', compact('action')); $listNode = $this->createListNode($node); $this->wrapChild($listNode, $action, $node->getActionLabel(), false); } } $this->childNodes = array_diff_key($this->childNodes, $diff); }
/** * @param LifecycleEventArgs $event */ public function postPersist(LifecycleEventArgs $event) { if (!($file = $this->getFile($event))) { return; } $file->getUploadedFile()->move($this->rootDir, $file->getPath()); if (in_array($file->getMimeType(), $this->imageMimeTypes)) { $image = $this->imageRepository->createEntity(); $image->__setFile($file); $size = getimagesize($this->rootDir . '/' . $file->getPath()); $image->__setWidth($size[0]); $image->__setHeight($size[1]); $this->getImageRepository()->save($image); } }
protected function getFormData(ManagedRepositoryInterface $repository, Request $request) { $formData = new \stdClass(); $formData->entity = $repository->createEntity(); return $formData; }
/** * @return string */ public function getLabel() { return sprintf('List %s', $this->repository->queryMetadata('getEntityHumanName', ['plural' => true])); }
/** * @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(); }
public function isRepositoryEligible(ManagedRepositoryInterface $repository) { $crud = $repository->queryMetadata('getEntityCrud'); $property = $this->isCreate() ? 'create' : 'update'; return !empty($crud->{$property}); }