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;
...
}
나에게도 효과가 있었고 일찍 시도 했었 더라면 몇 시간의 시행 착오를 겪을 수 있었다. – nekaab
감사합니다. 고맙습니다! 고맙습니다! 이 대답은 나의 하루를 저장합니다. 나는이 f ** king 배열이 비어있는 이유를 이해하는 데 한 시간 이상을 보냈다 ^^ 다시 한번 감사드립니다 :) – ByScripts