/** * Returns tags with taggings loaded by resource * * @param Taggable $resource * @param null $createdBy * @param bool $all * @return array */ public function getTagging(Taggable $resource, $createdBy = null, $all = false) { $qb = $this->createQueryBuilder('t')->select('t')->innerJoin('t.tagging', 't2', Join::WITH, 't2.recordId = :recordId AND t2.entityName = :entityName')->setParameter('recordId', $resource->getTaggableId())->setParameter('entityName', get_class($resource)); if (!is_null($createdBy)) { $qb->where('t2.createdBy ' . ($all ? '!=' : '=') . ' :createdBy')->setParameter('createdBy', $createdBy); } return $qb->getQuery()->getResult(); }
/** * Returns tags with taggings loaded by resource * * @param Taggable $resource * @param null $createdBy * @param bool $all * @param Organization $organization * @return array */ public function getTagging(Taggable $resource, $createdBy = null, $all = false, Organization $organization = null) { $qb = $this->createQueryBuilder('t')->select('t')->innerJoin('t.tagging', 't2', Join::WITH, 't2.recordId = :recordId AND t2.entityName = :entityName')->setParameter('recordId', $resource->getTaggableId())->setParameter('entityName', ClassUtils::getClass($resource)); if (!is_null($createdBy)) { $qb->where('t2.owner ' . ($all ? '!=' : '=') . ' :createdBy')->setParameter('createdBy', $createdBy); } if (!is_null($organization)) { $qb->andWhere('t.organization = :organization')->setParameter('organization', $organization); } return $qb->getQuery()->getResult(); }