gpt4 book ai didi

php - 将行分组为一行的学说和 SUM 数量不起作用

转载 作者:行者123 更新时间:2023-11-29 13:15:20 25 4
gpt4 key购买 nike

我有一个学说查询,我正在尝试对相似的行进行分组并对它们的数量(数量)进行求和。看起来像这样,但它不起作用......

public function getProducts($id, $account_id){

$query = $this->getEntityManager()
->createQuery('
SELECT p, pr, sum(p.qty) as qty
FROM WIC\PurchaseOrderBundle\Entity\PurchaseOrderProductsStatus p
JOIN p.product pr
WHERE p.inventoryLocation = :id
AND p.account = :account_id
GROUP BY p.product')
->setParameter('id', $id)
->setParameter('account_id', $account_id);

try{
return $query->getArrayResult();
}catch (\Doctrine\ORM\NoResultException $e) {
return $e;
}
}

我收到以下错误:

 Key "product" for array with keys "0, qty" does not exist in my twig template

如果我删除“,sum(p.qty)作为qty”,它工作正常,它只是没有给我分组所依据的列的总和。

这是我的 Twig 模板中的循环。

 {% for productAction in productActions %}
<tr>
<td>{{ productAction.product.id }}</td>
<td>{{ productAction.product.sku }}</td>
<td>{{ productAction.product.name }}</td>
<td>{{ productAction.qty }}</td>
<td></td>
</tr>
{% endfor %}

任何人都知道为什么会发生这种情况。

最佳答案

http://docs.doctrine-project.org/en/latest/reference/dql-doctrine-query-language.html#pure-and-mixed-results

结果的性质可以有两种形式:纯的和混合的。默认情况下,结果类型是纯的,但一旦标量值(例如聚合值或不属于实体的其他标量值)出现在 DQL 查询的 SELECT 部分中,结果就会变得混合。为了适应标量值,混合结果具有与纯结果不同的结构。

纯结果通常如下所示:

array(
'0' => obj1,
'1' => obj2
);

另一方面,混合结果具有以下一般结构:

array(
'0' => array(
'0' => Obj1,
'qty' => your scalar value sum(p.qty)
),
'1' => array(
'0' => Obj2,
'qty' => your scalar value sum(p.qty)
),
);

关于php - 将行分组为一行的学说和 SUM 数量不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21534375/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com