我有2个实体 - Product
和Group
。它们连接如下:
/**
* Products
*
* @ORM\Table(name="products")
* @ORM\Entity
*/
class Products
{
/**
* @var \AppBundle\Entity\Group
*
* @ORM\ManyToOne(targetEntity="AppBundle\Entity\Group")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="group_id", referencedColumnName="row_id")
* })
*/
public $group;
}
因此每个组可能包含许多产品,但1个产品可能只连接到1个组。我需要选择10 groups
及其所有products
,因此生成的数组应包含10个以上的条目,因为每个组定义的产品多于1个。我尝试了以下方法:
$qb = $em->createQueryBuilder();
$qb->select('g', 'p')
->from('AppBundle:Group', 'g')
->leftJoin('AppBundle:Products', 'p', 'WITH', 'p.group = g.rowId')
//->where('p.productnum = g.rowId')
->orderBy('g.'.$OrderColumn, $OrderType)
->setFirstResult($start)
->setMaxResults(10);
$res = $qb->getQuery()->getResult();
但是我得到了一组混合的组和产品(以组作为子元素),当然在该数组中只有不到10个组(但我的数据库中有多于10个组)我想得到一组由10组组成的产品,作为每个组的子阵列。那可能吗?任何想法如何做到这一点将是受欢迎的。谢谢。