2013-07-15 3 views
2

임베디드 문서 모음을 가져오고 싶습니다. 데이터베이스에 데이터를 입력하면 다음과 같습니다.임베디드 문서의 빈 모음 얻기

$dm->getRepository('BundleUserBundle:User')->addRatedPostById($user->getId(), new RatedPost($id, $type)); 

... 잘 작동합니다. 이제 mongo 콘솔에서 새 데이터를 볼 수 있지만 getRatedPosts() 메서드를 통해이 데이터를 가져 오려고하면 ArrayCollection 대신 null이 반환됩니다. 뭐가 문제 야?

상황은 다음과 같습니다

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; 
    ... 
} 

답변

9

나는 정확히 같은 문제가 있었다 : 절약 아무런 문제가 없었다하지만 포함 된 문서를 가져 오는 것은이었다. "symfony"캐싱 문제 (app_dev.php에서도 마찬가지)가 나타났습니다. 캐시를 제거하려고 했습니까?이 기능은 저에게 효과적이었습니다!

+0

나에게도 효과가 있었고 일찍 시도 했었 더라면 몇 시간의 시행 착오를 겪을 수 있었다. – nekaab

+0

감사합니다. 고맙습니다! 고맙습니다! 이 대답은 나의 하루를 저장합니다. 나는이 f ** king 배열이 비어있는 이유를 이해하는 데 한 시간 이상을 보냈다 ^^ 다시 한번 감사드립니다 :) – ByScripts