Я получил 2 лица — Products
а также Region
, У них есть ManytoMany
отношение и связаны с 3-м субъектом Product_region
, Его код выглядит следующим образом:
<?php
namespace AppBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* Product_region
*
* @ORM\Table(name="product_region")
* @ORM\Entity
*/
class Product_region
{
/**
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
* @var \AppBundle\Entity\Products
*
* @ORM\ManyToOne(targetEntity="AppBundle\Entity\Products")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="product_id", referencedColumnName="row_id")
* })
*
*/
private $productid;
/**
* @var \AppBundle\Entity\Region
*
* @ORM\ManyToOne(targetEntity="AppBundle\Entity\Region")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="region_id", referencedColumnName="id")
* })
*/
private $regionid;
}
Мне нужно скачать все products
с его регионами в один массив, чтобы иметь что-то вроде:
[
[0]=>[
'name'=> 'product_1',
'regions=>[
[0]=>['id'=>'1', 'name'=>'region_1'],
[1]=>['id'=>'2', 'name'=>'region_2']...
]
],
[1]=> ...
]
Я пытаюсь сделать это с помощью следующего кода:
$qb = $em->createQueryBuilder();
$qb->select('p', 'pnr')
->from('AppBundle:Products', 'p')
->leftJoin('AppBundle:Product_region', 'pr', 'WITH', 'p = pr.productid')
->leftJoin('AppBundle:Region', 'pnr', 'WITH', 'pnr = pr.regionid');
$res = $qb->getQuery()->getResult();
но если я попытаюсь var_dump($res)
зависает браузер и начинает передавать неограниченное количество данных. Любые идеи, как это исправить, приветствуются. Спасибо.
Задача ещё не решена.
Других решений пока нет …