Ребята, я работаю с доктриной JOINS и столкнулся с проблемой.
Я выполнил запрос с объединениями, и, похоже, результаты хорошие!но вывод ужасен
public function getMarketcapData($page = -1, $limit = -1){
$pageAndCount = $page>-1 && $limit>0;
$qb = $this->getEntityManager()->createQueryBuilder();
$q = $qb->select('cc, count(cr) as coinRawsCount, cmc as relatedCategory')
->from('AppBundle:CoinClean', 'cc')
->leftJoin("AppBundle:CoinRaw", "cr", 'WITH', 'cc = cr.coinClean')
->leftJoin("AppBundle:CoinMapCategory", "cmc", 'WITH', 'cc.relatedCategory = cmc')
->andWhere('cc = cr.coinClean')
->andWhere('cc.relatedCategory = cmc')
->groupBy('cc.id')
;
if($pageAndCount) $q = $q->setFirstResult($page*$limit)->setMaxResults($limit);
$q= $q->orderBy('cc.rank', "ASC")->getQuery();
$result = $q->getResult();
if($pageAndCount){
$qb = $this->getEntityManager()->createQueryBuilder();
$q = $qb->select('count(u.id)')->from('AppBundle:CoinClean', 'u')->getQuery();
return new PageResult($result, (int)$q->getSingleScalarResult(), $page, $limit );
}else{
return $result;
}
}
здесь у вас есть вывод: это массив из массива + obejcts
data:[
[ // first query result
{data from cc} // ony one object
],
{// first query result from join
"coinRawsCount": 4,
"relatedCategory": {...}
},
[ // second query result
{data from cc2} // ony one object
],
{// second query result from join
"coinRawsCount": 4,
"relatedCategory": {...}
}
]
моя цель - сжать все в
"data":[
{
"data": {...},
"coinRawsCount": 4,
"relatedCategory": {...}
},
{
"data": {...},
"coinRawsCount": 4,
"relatedCategory": {...}
},
]
Есть идеи?