Вопрос о соединении доктрины с двумя таблицами

Я получил 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 групп с продуктами в качестве подмассива для каждой группы. Это возможно? Любые идеи, как это сделать, будут приветствоваться. Спасибо.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector