Объединить SUM с Doctrine2 и QueryBuilder
В моем классе репозитория у меня есть это, но запрос не работает.
public function getResultsByName($page, $resultsCount, array $request_arr){
$qb = $this->createQueryBuilder('xx');
$qb->addSelect('SUM(xx.quantity) as total')
->leftJoin('xx.reception', 'x')
->addSelect('x')
->leftJoin('x.purchase', 'p')
->addSelect('p')
->leftJoin('p.provider', 'pr')
->addSelect('pr')
->where('pr.id = :company_id')
->setParameter('company_id', $request_arr['company_id']);
$query = $qb->getQuery();
return parent::getPaginator($query, $page, $resultsCount); }
Ошибка появляется в моем шаблоне ветки, это важный кусок этого
{% for result in results %}
<tr>
<td>{{result.reception.id}}</td>
<td>{{result.reception.date|date('d-m-Y')}}</td>
<td>{{result.reception.purchase.id}}</td>
<td>{{result.reception.purchase.provider.name|upper}} [{{result.reception.purchase.provider.id}}]</td>
<td>{{result.purchaseProduct.name |upper}} [{{result.purchaseProduct.productCode |upper}}]</td>
<td>{{result.purchasePrice}}</td>
<td>{{result.quantity}}</td>
<td></td>
<td>{{result.quantityStock}}</td>
</tr>
{% endfor %}
1 ответ
Поскольку у вас есть два выбора в вашем запросе, ваш результирующий объект является массивом такого типа:
array(
'total' => $total,
'xx' => array(
'reception' => $reception,
'quantityStock' => $quantityStock,
[...]
)
);
Чтобы получить доступ к своим свойствам в ветке, вы должны получить к нему доступ следующим образом:
{{result.xx.reception}}
{{result.total}}