无法将$ push /$ puspall修饰符应用于嵌入式对象上的非阵列



我有一个文档,其中嵌入了文档,但是即使数据持续存在,我也无法将"无法将$ push/$ peckall修饰符应用于非阵列"错误。

这是我的文档:

/**
 * @MongoDBEmbeddedDocument
 */
class Author
{
   /**
    * @MongoDBInt
    */
   protected $id;
   /**
    * @MongoDBString
    */
    protected $name;
}

这是我的评论文档,嵌入了作者文档:

/**
 *@MongoDBDocument(collection="discussions")
 */
class Discussion
{
   /**
    * @MongoDBId
    */
        protected $id;
    /**
     * @MongoDBObjectId
     */
    protected $discussion_id;

   /**
     * @MongoDBString
     */
    protected $slug;

   /** @MongoDBEmbedOne(targetDocument="Author") */
    protected $author;
     /**
     * @MongoDBString
     */
    protected $text;

    /**
     * @MongoDBDate
     */
    protected $createdAt;
}

最后,这是我的列表文档嵌入讨论文档

class Listing
{
    /**
     * @MongoDBId
     */
    protected $id;
      /** @MongoDBReferenceMany(targetDocument="Discussion") */
    protected $discussions;
    public function __construct()
    {
        $this->discussions = new DoctrineCommonCollectionsArrayCollection();
    }
     /**
     * Add discussions
     *
     * @param MainSomeBundleDocumentDiscussion $discussions
     */
    public function addDiscussions(MainSomeBundleDocumentDiscussion $discussions)
    {
        $this->discussions[] = $discussions;
    }
    /**
     * Get discussions
     *
     * @return DoctrineCommonCollectionsCollection $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($ descold);"中。因为当我删除它时,它会消失。

我在做什么错?

您正在遇到该错误,因为您正在尝试将讨论变量用作数组,但是您尚未将其声明为此。当您在列表类中声明讨论时,您需要将其声明为一个空数组:

$discussions = array();

相关内容

  • 没有找到相关文章

最新更新