symfony获得标量结果和实体结果

时间:2016-04-19 00:27:14

标签: doctrine-orm doctrine symfony

我正在使用symfony 3,我试图createNativeQuery来检索产品列表(实体),这里的数量(整数)是我的函数:

public function findStockbyStore(Store $store)
{
    $rsm = new ResultSetMapping();
    $rsm->addEntityResult(Product::class, 'p');
    $rsm->addFieldResult('p', 'product_id', 'id');
    $rsm->addScalarResult('quantity', 'quantity');
    $query = $this->getEntityManager()->createNativeQuery(
      "SELECT `product_id`, `quantity` as 'quantity' FROM `stock`",
      $rsm
    );

//$query->setParameter(1, $store->getId());

return $query->getResult();

}

但是这个查询只返回一个产品数组,如果我删除了$rsm->addFieldResult('p', 'product_id', 'id');我得到一个只有数量的数组。

现在我使用$query->getResult();而不是$query->getArrayResult();我得到一个只包含id和数量的数组。

那么如何同时获得实体和标量对象?

1 个答案:

答案 0 :(得分:0)

我认为你不能。学说都是关于对象的。

您处于对象上下文中,在这种情况下,您需要在模型中使用数量属性(例如),或者您处于非对象上下文中,在这种情况下您拥有数组。