获取嵌入文档的空集合
Posted
技术标签:
【中文标题】获取嵌入文档的空集合【英文标题】:Get empty collection of embedded documents 【发布时间】:2013-07-13 10:10:17 【问题描述】:我想获取嵌入文档的集合。我像这样将数据放入数据库:
$dm->getRepository('BundleUserBundle:User')->addRatedPostById($user->getId(), new RatedPost($id, $type));
...效果很好。现在我在 mongo 控制台中看到了新数据,但是当我尝试通过 getRatedPosts()
方法获取这些数据时,它返回 null 而不是 ArrayCollection。怎么了?
上下文如下所示:
class User extends BaseUser
/**
* @MongoDB\EmbedMany(targetDocument="RatedPost")
*/
protected $ratedPosts;
/**
* Add ratedPosts
*
* @param Bundle\UserBundle\Document\RatedPost $ratedPosts
*/
public function addRatedPost(\Bundle\UserBundle\Document\RatedPost $ratedPosts)
$this->ratedPosts[] = $ratedPosts;
/**
* Remove ratedPosts
*
* @param Bundle\UserBundle\Document\RatedPost $ratedPosts
*/
public function removeRatedPost(\Bundle\UserBundle\Document\RatedPost $ratedPosts)
$this->ratedPosts->removeElement($ratedPosts);
/**
* Get ratedPosts
*
* @return Doctrine\Common\Collections\Collection $ratedPosts
*/
public function getRatedPosts()
return $this->ratedPosts;
/**
* @MongoDB\EmbeddedDocument
*/
class RatedPost
/**
* @MongoDB\Int
*/
public $post;
/**
* @MongoDB\String
*/
public $rate;
...
【问题讨论】:
【参考方案1】:我遇到了完全相同的问题:保存没有问题,但获取嵌入的文档却是。原来这是一个“Symfony”缓存问题(也在 app_dev.php 上)。您是否尝试过删除缓存,这对我有用!
【讨论】:
这对我也有用,如果我早点看到它,本可以节省数小时的反复试验。 谢谢!谢谢!谢谢!这个答案拯救了我的一天。我花了一个多小时才明白为什么这个 f**king 数组一直是空的 ^^ 再次感谢 :)以上是关于获取嵌入文档的空集合的主要内容,如果未能解决你的问题,请参考以下文章