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