2016-04-19 8 views
1

Ich bin mit symfony 3 und im zu createNativeQuery versuchen, eine Liste von Produkt (Entity) retrieave und die Menge (Integer), hier ist meine Funktion:symfony erhalten skalare Ergebnis und Einheit Ergebnis

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

}

Aber diese Abfrage gibt nur ein Array von Produkten zurück, und wenn ich die $rsm->addFieldResult('p', 'product_id', 'id'); entferne, bekomme ich ein Array mit nur der Menge.

Jetzt anstelle von $query->getResult(); benutze ich $query->getArrayResult(); ich bekomme ein Array, das nur die ID und die Menge enthält.

Also wie kann ich sowohl die Entität und das Skalarobjekt bekommen?

Antwort

0

Ich denke, du kannst nicht. Lehre dreht sich alles um das Objekt.

Entweder befinden Sie sich in einem Objektkontext. In diesem Fall benötigen Sie ein Mengenattribut (zum Beispiel) in Ihrem Modell oder Sie befinden sich in einem Nichtobjektkontext. In diesem Fall haben Sie das Array.