簡體   English   中英

訪問主義查詢中的元素不起作用

[英]Accessing Elements In Doctrine Query Not Working

我有一個Doctrine查詢,其中“ JOIN p.product pr”正在加入產品表及其所有信息(id,名稱,數量,狀態,創建,更新,deletedAt等)。

我的存儲庫類中的自定義函數...

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

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

在我的控制器中,我將數組發送到樹枝模板中。

 $productActions = My custom function query listed above which returns array

 return array(
        'heading' => 'Inventory Staging Location',
        'productActions' => $productActions,
    );

在我的Twig模板中,我現在嘗試遍歷記錄...

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

我收到此錯誤...

 Key "product" for array with keys "id, qty, status, created, updated, deletedAt" does not exist in ...

我究竟做錯了什么?

當我通過-> findBy()進行查詢時,一切似乎都正常運行。 發送到樹枝模板時,此數組有效

 $productActions = $em->getRepository('WICPurchaseOrderBundle:PurchaseOrderProductsStatus')->findBy(array(
            "inventoryLocation"=>$inventoryLocation,
            "account"=>$account_id,
        )); 

謝謝!

您需要在SELECT部分​​中請求pr ;)

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM