Doctrine加入2个表查询问题

时间:2017-08-15 13:36:30

标签: php symfony

我有2个实体 - ProductGroup。它们连接如下:

/**
 * 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组组成的产品,作为每个组的子阵列。那可能吗?任何想法如何做到这一点将是受欢迎的。谢谢。

0 个答案:

没有答案