エンティティとスカラーの結果を含む混合ResultSetMappingを使用してnativeQueryを生成しようとしています。Symfony2 - NativeQueryの結果キーからエンティティにアクセスする
array:2 [▼
0 => Evaluation {▼
#id: 24
}
"company" => "INRA"
]
だから、結果の配列で、同社がで識別されます。例:私は、クエリ結果の要素のうちの1つを{{()}ダンプ}、それはこのようになります
$rsm = new ResultSetMapping();
$rsm->addEntityResult('MyBundle:Evaluation','e');
$rsm->addFieldResult('e','id','id');
$rsm->addScalarResult('company','company');
私の評価エンティティが「0」キーで識別されている間は「会社」キー。
質問:ResultSetMapping()で定義されたエンティティに数値キー以外でアクセスする別の方法がありますか? ScalarResultsのような?
実際の問題は何ですか? – rubin
私のコードはうまく動作しますが、$ result ['evaluation']の代わりに$ result [0]のようなことを余儀なくされています。たとえば、$ result [8]を読み込むことができず、このコードを見ている開発者は、$ result [8]に含まれるデータの種類を知るためにリポジトリクラスを開く必要があります。さらに、クエリの開始時に他のエンティティ結果を追加した場合、以前のすべての参照がバグの原因になります。これは、オフセットが存在するためです。 – alpadev
私はちょうどあなたのコメントに気づいた、あなたは2または3 EntityResultsでより複雑な例を提供できますか?それはいくつかの概念が間違っているようです。複数の要素をフェッチするときは、ループを使って繰り返し処理します。各要素は同じプロパティを持つ必要があります。このように配列要素に直接アクセスすると、$ result [8]はコード内に何か問題があることを示します。 – lchachurski