Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 条令将行分组为一行,合计不起作用的数量_Php_Mysql_Sql_Symfony_Doctrine Orm - Fatal编程技术网

Php 条令将行分组为一行,合计不起作用的数量

Php 条令将行分组为一行,合计不起作用的数量,php,mysql,sql,symfony,doctrine-orm,Php,Mysql,Sql,Symfony,Doctrine Orm,我有一个条令查询,我正在尝试将类似的行分组,并对它们的数量(qty)求和。看起来像这样,但它不起作用 public function getProducts($id, $account_id){ $query = $this->getEntityManager() ->createQuery(' SELECT p, pr, sum(p.qty) as qty FROM WIC\PurchaseOrder

我有一个条令查询,我正在尝试将类似的行分组,并对它们的数量(qty)求和。看起来像这样,但它不起作用

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)as qty”,它可以正常工作,只是不能提供我分组所依据的列的总和

这是我的小树枝模板中的循环

 {% 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 %}
{%forProductActions%}
{{productAction.product.id}
{{productAction.product.sku}
{{productAction.product.name}
{{productAction.qty}
{%endfor%}
任何人都知道为什么会这样

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

纯结果通常如下所示:

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)
    ),
);