hi专家:我有一个问题构建查询,以提取使用'referenceMany'引用的文档的详细信息。这是代码的示例设置
class FoodItem{
/**
* @MongoDbId
*/
protected Id;
/**
* @MongoDbfield(type="string")
*/
protected name;
/**
* @MongoDbfield(type="float")
*/
protected calories;
/**
* @MongoDbReferenceMany(targetDocument="FoodItem", storeAs="id")
*/
protected $bestEatenWith = array();
}
这个想法是1 fooditem可以是其他食物限制的,因此" besteatenwith"是一系列" id属于同一'fooditem'文件。
我使用的查询如下 -
$qb = $dm->createQueryBuilder('AppBundle:FoodItem')
->select("name", "bestEatenWith", "nutrition")
->eagerCursor(true)
->hydrate(false);
$query = $qb->getQuery();
$result = $query->execute();
我得到的结果是用树枝模板显示的,我可以在树枝,"名称"one_answers"营养"中显示,但是我得到了" festeatenwith"作为" ID"的数组
问题1:如何使用php通过$结果分析并访问" besteatenwith"数组中包含的'id?
问题2:我可以在单个查询中无法获得'Besteatenwith.name'的东西?
问题1
在控制器中,将结果带有dump
函数:
dump($result);
问题2
通常,您可以从bestEatenWith
中获取名称,$result
感谢穆罕默德的回答,您已经回答了我的问题的一部分。但是,我自己找到了第二部分的答案,所以这是一个完整的答案。
这是我所做的 -
答案1
- 穆罕默德回答 时使用的dump()
答案2
- 使用getter函数'getBesteAtenwith'检索数组
- 然后使用foreach并使用getter函数(例如getName)检索besteatenwith record的名称