2016-12-14 13 views
0

こんにちは、エキスパート: 'referenceMany'を使って参照されたドキュメントの詳細を抽出するクエリを構築する際に問題があります。ここでは、コードsymfony 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(); 
} 

の設定例は、アイデアは1 FoodItemは、したがって、他のFoodItems bestEatenWith可能である「bestEatenWith」FoodItem 『文書「同上のは同じに属する』の配列です。

次のように私が使用したクエリがある -

$qb = $dm->createQueryBuilder('AppBundle:FoodItem') 
     ->select("name", "bestEatenWith", "nutrition") 
     ->eagerCursor(true) 
     ->hydrate(false); 
    $query = $qb->getQuery(); 
    $result = $query->execute(); 

結果、私はその後、小枝のテンプレートを使用して表示されます、そして「私は、小枝に「名前」と「栄養」を表示することができますが、私が手bestEatenWith同上の

質問1「の配列として」:どのように私はPHPを使用して$結果を解析し、「同上の配列に含まれる 『』 bestEatenWithにアクセスできますか?

質問2:単一のクエリで「bestEatenWith.name」のようなものを取得することはできませんか?コントローラで

答えて

0

あなたの答えはモハメドありがとう、あなたは私の質問の一部に答えました。しかし、私はそれが完全な答えになるように、2番目の部分に自分自身の答えを見つけました。ここで

はモハメドが

回答2

  1. ゲッターを使用してくださいに答えて、私は

    回答1

    1. 使用されるダンプを()did-ものです機能on 'getBestEatenWith'を使用して配列を取得する
    2. foreachを使用してgetNameのようなゲッター関数を使用して、最高の名前を取得してください。
0

質問1

dump機能で結果をダンプ:通常あなたがbestEatenWithから名前を取得することができます

dump($result); 

質問2

$result

に存在します
関連する問題