コード例 #1
0
 /**
  * @param Request $request
  * @param Tag $tag
  * @return Response
  */
 public function nodeListAction(Request $request, $tag)
 {
     $listHandler = TagListHandler::fromRequest($request);
     if (!$listHandler->getEntity()) {
         throw new BadRequestHttpException('You must specify the _entity key in the route defaults');
     }
     if (!$listHandler->getField()) {
         throw new BadRequestHttpException('You must specify the _field key in the route defaults');
     }
     /** @var EntityManager $entityManager */
     $entityManager = $this->getDoctrine()->getManager();
     $queryBuilder = $entityManager->createQueryBuilder();
     $listHandler->buildQuery($queryBuilder);
     $paginator = new Paginator($queryBuilder);
     return $this->render($listHandler->getTemplate(), ['tag' => $tag, 'nodes' => $paginator, 'page_title' => $listHandler->getTitle()]);
 }
コード例 #2
0
 /**
  * @param FieldableEntity|Tag $entity
  * @param array $options
  * @return array
  */
 public function getTemplateOptions(FieldableEntity $entity, array $options = [])
 {
     foreach ($options['node_types'] as $nodeClass => $nodeField) {
         $listHandler = new TagListHandler($nodeClass);
         $listHandler->setField($nodeField);
         $listHandler->setTag($entity->getName());
         $listHandler->setPageSize($options['page_size']);
         $listHandler->setTitle($entity->getName());
     }
     $queryBuilder = new QueryBuilder($this->entityManager);
     $listHandler->buildQuery($queryBuilder);
     $nodes = $queryBuilder->getQuery()->execute();
     return ['tag' => $entity->getName(), 'nodes' => $nodes];
 }