public function getCollectionWithCategoria(\TemTudoAqui\Categoria $categoria, \TemTudoAqui\AbstractEntity $entity, $params = [], $fields = [], $type = self::RESULT_ARRAY)
 {
     $this->setFilter(function ($alias, $query) use($categoria) {
         if ($categoria->getId() > 0) {
             $query->innerJoin("{$alias}.produtos", 'p')->innerJoin("p.categorias", 'c')->andWhere($query->expr()->orX("c.subreferencia LIKE :subreferencial", "c.subreferencia = :subreferencia"))->setParameter('subreferencial', $categoria->getSubreferencia() . ".%")->setParameter('subreferencia', $categoria->getSubreferencia())->groupBy('p.marca');
         }
         return $query;
     });
     $rs = parent::getCollection($entity, $params, $fields, $type);
     return $rs;
 }
 public function getCollectionWithCategoria(\TemTudoAqui\Categoria $categoria, $onlyWithImage = false, \TemTudoAqui\AbstractEntity $entity, $params = [], $fields = [], $type = self::RESULT_ARRAY)
 {
     $this->setFilter(function ($alias, $query) use($categoria, $onlyWithImage) {
         if ($categoria->getId() > 0) {
             $query->innerJoin("{$alias}.categorias", 'c')->andWhere($query->expr()->orX("c.subreferencia LIKE :subreferencial", "c.subreferencia = :subreferencia"))->setParameter('subreferencial', $categoria->getSubreferencia() . ".%")->setParameter('subreferencia', $categoria->getSubreferencia())->addSelect('c')->innerJoin('c.url', 'uc')->addSelect('uc');
         } else {
             $query->innerJoin("{$alias}.categorias", 'c')->addSelect('c')->innerJoin('c.url', 'uc')->addSelect('uc');
         }
         if ($onlyWithImage) {
             $query->leftJoin("{$alias}.imagens", 'i')->andWhere("i.sessao = 'produtos'")->orderBy('i.id', "DESC");
         }
         return $query;
     });
     $rs = parent::getCollection($entity, $params, $fields, $type);
     return $rs;
 }