Hallo Experten: Ich habe ein Problem beim Erstellen einer Abfrage zum Extrahieren von Details des Dokuments, das mit 'referenceMany' referenziert wurde. Hier ist das Beispiel Aufbau des Codesymfony mongodb odm referenceMany
class FoodItem{
/**
* @MongoDb\Id
*/
protected Id;
/**
* @MongoDb\field(type="string")
*/
protected name;
/**
* @MongoDb\field(type="float")
*/
protected calories;
/**
* @MongoDb\ReferenceMany(targetDocument="FoodItem", storeAs="id")
*/
protected $bestEatenWith = array();
}
Die Idee ist, 1 FoodItem bestEatenWith andere FoodItems sein kann, daher ‚bestEatenWith‘ ist ein Array von ‚Id Zugehörigkeit zu demselben‚FoodItem‘Dokument.
Die Abfrage I wird wie folgt verwendet -
$qb = $dm->createQueryBuilder('AppBundle:FoodItem')
->select("name", "bestEatenWith", "nutrition")
->eagerCursor(true)
->hydrate(false);
$query = $qb->getQuery();
$result = $query->execute();
Das Ergebnis erhalte ich dann Zweig Vorlage angezeigt wird verwendet, und ich kann in Zweig, der ‚Name‘ und ‚Ernährung‘ angezeigt werden, aber ich habe ' bestEatenWith 'als ein Array von' Ids
Frage 1: Wie parse ich durch $ Ergebnis mit PHP und Zugriff auf die 'IDs im Array von' BestEatenWith 'enthalten?
Frage 2: Kann ich vielleicht nicht so etwas wie ‚bestEatenWith.name‘ in einer einzigen Abfrage bekommen?