Symfony条令-仅显示指定了对象的类别项

Symfony条令-仅显示指定了对象的类别项,symfony,join,doctrine-orm,Symfony,Join,Doctrine Orm,我一直想弄清楚这件事,但似乎想不出来 我试图只返回已分配对象的类别项 正如您在下面看到的,类别有一个类别项目的集合,然后类别项目有一个对象的集合 我试图返回包含类别项目的类别,但仅返回包含对象的类别项目 Category.php /** * @var \Doctrine\Common\Collections\ArrayCollection * * @ORM\OneToMany(targetEntity="Bundle\Entity\CategoryItem", mappedBy="cate

我一直想弄清楚这件事,但似乎想不出来

我试图只返回已分配对象的类别项

正如您在下面看到的,类别有一个类别项目的集合,然后类别项目有一个对象的集合

我试图返回包含类别项目的类别,但仅返回包含对象的类别项目

Category.php

/**
 * @var \Doctrine\Common\Collections\ArrayCollection
 *
 * @ORM\OneToMany(targetEntity="Bundle\Entity\CategoryItem", mappedBy="category", cascade={"persist"})
 */
private $filters;
CategoryItem.php

   /**
 * @var FilterCategory
 *
 * @ORM\ManyToOne(targetEntity="Bundle\Entity\Category", inversedBy="filters")
 * @ORM\JoinColumn(name="category_id", referencedColumnName="id")
 */
private $category;

/**
 * @var \Doctrine\Common\Collections\ArrayCollection
 *
 * @ORM\ManyToMany(targetEntity="Bundle\Entity\Object", inversedBy="filters")
 * @ORM\JoinTable(name="filters_objects")
 */
private $hotels;
这就是我到目前为止所做的

CategoryRepository.php

public function findFiltersWithProducts()
{
    $parameters = array();
    $query  = $this->createQueryBuilder('category')
        ;
    $query->where('category.publish IS NULL');

    $query->innerJoin('category.filters', 'filters', 'WITH', *I THINK SOMETHING GOES HERE?*);

    $query->setParameters($parameters);
    return $query->getQuery()->getResult();

}
编辑

我有什么办法可以做到:

    $query->innerJoin('category.filters', 'filters');
    /** Do a sub query on the above **/
     /** this is the subquery on the filter**/
    $query->andWhere(COUNT(filters.objects) > 0)
试着替换

$query->innerJoin('category.filters', 'filters', 'WITH', *I THINK SOMETHING GOES HERE?*);


这不起作用,它仍然返回项目的完整列表
$query->innerJoin('category.filters', 'filters', 'category.filters.category_id = category.filters.id');