/** * @param Taggable $taggable * @param TagGroup $tagGroup * * @return Collection */ public function filterByGroup(Taggable $taggable, TagGroup $tagGroup) { $ids = $this->getTagsIds($taggable); if (0 === count($ids)) { return new ArrayCollection(); } $qb = $this->createQueryBuilder('tg'); $qb->select('tg, t'); $qb->leftJoin('tg.tags', 't'); $qb->where('tg.id = :id')->setParameter('id', $tagGroup->getId()); $qb->andWhere($qb->expr()->in('t.id', $ids)); $qb->orderBy('t.name', 'ASC'); /** @var TagGroup[] $result */ $result = $qb->getQuery()->getResult(); if ($result) { return $result[0]->getTags(); } return new ArrayCollection(); }
/** * @param Tag $tag * @param TagGroup $group * * @return bool */ public function groupHasTag(Tag $tag, TagGroup $group) { return $group->getTags()->contains($tag); }
/** * @Route("/tag/list/{group}", name="kunstmaantaggroupbundle_admin_taggroup_manager_list") * @param TagGroup $group * * @return array */ public function listTagsAction(TagGroup $group) { $manager = $this->get('szg_kunstmaantaggroupbundle.tag_group.manager'); return $this->render('@KunstmaanTagGroup/TagGroup/list.html.twig', ['tags' => ['all' => $manager->getAllTags(), 'group' => $group->getTags()], 'group' => $group]); }