symfony mongodb odm referenceMany
symfony mongodb odm referenceMany
您好专家:我在构建查询以提取使用 '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' 是属于同一 'FoodItem' 文档的“Id”数组。
我使用的查询如下 -
$qb = $dm->createQueryBuilder('AppBundle:FoodItem')
->select("name", "bestEatenWith", "nutrition")
->eagerCursor(true)
->hydrate(false);
$query = $qb->getQuery();
$result = $query->execute();
然后使用 Twig 模板显示我得到的结果,我可以在 Twig 中显示 'name' 和 'nutrition',但我得到 'bestEatenWith' 作为“Id”的数组
问题 1: 如何使用 PHP 解析 $result 并访问 'bestEatenWith' 数组中包含的“Id”?
问题 2: 我不可能在单个查询中得到类似 'bestEatenWith.name' 的结果吗?
问题 1
在控制器中使用 dump
函数转储结果:
dump($result);
问题二
通常您可以从 bestEatenWith
中获取名称存在于 $result
感谢 Mohamed 的回答,您已经回答了我的部分问题。然而,我自己找到了第二部分的答案,所以这是一个完整的答案。
这是我所做的-
回答 1
- 按照 Mohamed 的回答使用了 dump()
答案 2
- 使用getter函数'getBestEatenWith'检索数组
- 然后使用foreach 并使用getter 函数如getName 来检索bestEatenWith 记录的名称
您好专家:我在构建查询以提取使用 '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' 是属于同一 'FoodItem' 文档的“Id”数组。
我使用的查询如下 -
$qb = $dm->createQueryBuilder('AppBundle:FoodItem')
->select("name", "bestEatenWith", "nutrition")
->eagerCursor(true)
->hydrate(false);
$query = $qb->getQuery();
$result = $query->execute();
然后使用 Twig 模板显示我得到的结果,我可以在 Twig 中显示 'name' 和 'nutrition',但我得到 'bestEatenWith' 作为“Id”的数组
问题 1: 如何使用 PHP 解析 $result 并访问 'bestEatenWith' 数组中包含的“Id”?
问题 2: 我不可能在单个查询中得到类似 'bestEatenWith.name' 的结果吗?
问题 1
在控制器中使用 dump
函数转储结果:
dump($result);
问题二
通常您可以从 bestEatenWith
中获取名称存在于 $result
感谢 Mohamed 的回答,您已经回答了我的部分问题。然而,我自己找到了第二部分的答案,所以这是一个完整的答案。
这是我所做的-
回答 1
- 按照 Mohamed 的回答使用了 dump()
答案 2
- 使用getter函数'getBestEatenWith'检索数组
- 然后使用foreach 并使用getter 函数如getName 来检索bestEatenWith 记录的名称