2013-07-15 4 views
2

Je souhaite obtenir une collection de documents incorporés. Je mets des données dans la base de données comme ceci:Récupérer une collection vide de documents incorporés

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

... qui fonctionne bien. Maintenant, je vois de nouvelles données dans la console mongo, mais quand j'essaie d'obtenir ces données via la méthode getRatedPosts(), il retourne null au lieu de l'ArrayCollection. Qu'est-ce qui ne va pas?

Contexte ressemble à ceci:

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

Répondre

9

J'ai eu exactement les mêmes problèmes: sauver avait pas de problème, mais aller chercher le document incorporé était. Il s'est avéré que c'était un problème de mise en cache "Symfony" (également sur app_dev.php). Avez-vous essayé d'enlever votre cache, cela a fonctionné pour moi!

+0

Cela a fonctionné pour moi aussi et aurait pu sauver des heures d'essais et d'erreurs si je l'avais vu plus tôt. – nekaab

+0

Merci! Je vous remercie! Je vous remercie! Cette réponse sauve ma journée. J'ai passé plus d'une heure à comprendre pourquoi ce f ** king array est resté vide ^^ Merci encore :) – ByScripts

Questions connexes