ドキュメントが埋め込まれているドキュメントがありますが、データが永続化されているにもかかわらず、「非配列に $push/$pushAll 修飾子を適用できません」というエラーが表示されます。
ここに私の文書があります:
/**
 * @MongoDB\EmbeddedDocument
 */
class Author
{
   /**
    * @MongoDB\Int
    */
   protected $id;
   /**
    * @MongoDB\String
    */
    protected $name;
}
Author ドキュメントを埋め込んだコメント ドキュメントは次のとおりです。
/**
 *@MongoDB\Document(collection="discussions")
 */
class Discussion
{
   /**
    * @MongoDB\Id
    */
        protected $id;
    /**
     * @MongoDB\ObjectId
     */
    protected $discussion_id;
   /**
     * @MongoDB\String
     */
    protected $slug;
   /** @MongoDB\EmbedOne(targetDocument="Author") */
    protected $author;
     /**
     * @MongoDB\String
     */
    protected $text;
    /**
     * @MongoDB\Date
     */
    protected $createdAt;
}
最後に、ディスカッション ドキュメントを埋め込んだリスティング ドキュメントを示します。
class Listing
{
    /**
     * @MongoDB\Id
     */
    protected $id;
      /** @MongoDB\ReferenceMany(targetDocument="Discussion") */
    protected $discussions;
    public function __construct()
    {
        $this->discussions = new \Doctrine\Common\Collections\ArrayCollection();
    }
     /**
     * Add discussions
     *
     * @param Main\SomeBundle\Document\Discussion $discussions
     */
    public function addDiscussions(\Main\SomeBundle\Document\Discussion $discussions)
    {
        $this->discussions[] = $discussions;
    }
    /**
     * Get discussions
     *
     * @return Doctrine\Common\Collections\Collection $discussions
     */
    public function getDiscussions()
    {
        return $this->discussions;
    }
}
したがって、私のコードでは、データを入れるために次のことを行っています。
 $author = new Author();
         $author->setId( 1 );
         $author->setName("blahblah"); //for now the user name is the author name
         $discussion = new Discussion();
         $discussion->setAuthor($author);
         $dm->persist($discussion);
         $listing->addDiscussions($discussion); <---- I GET THIS HERE!!!!
         $dm->persist($listing);
         $dm->flush();
私が得ているエラーは、「$listing->addDiscussions($discussion);」という行にあります。外すと消えるから。
私は何を間違っていますか?