我将使用 doctrine Doctrine MongoDB ODM 1.0.3 进行翻译。在尝试使用 doctrine 更新文档时,我遇到了以下错误:
以下代码用于添加新文档:
但是遇到了上述错误。
类 XXX 不是有效的文档或映射超级类。
我有以下文档类:
<?php
namespace Documents;
use Doctrine\ODM\MongoDB\Mapping\Annotations as ODM;
/**
* @ODM\Document(collection="posts")
*/
class Posts
{
/** @ODM\Id */
private $id;
/** @ODM\Field(type="string") */
private $title;
/** @ODM\EmbedMany(targetDocument="Comment") */
private $comments = array();
public function setTitle($title)
{
$this->title = $title;
}
public function getTitle()
{
return $this->title;
}
public function addComment($comment)
{
$this->comments[] = $comment;
}
public function getComments()
{
return $this->comments;
}
}
以下代码用于添加新文档:
$post = new \Documents\Posts();
$post->setTitle( $_POST['title'] );
$dm->persist($post);
$dm->flush();
之后我想更新已添加的文档以添加新的评论,例如。 我使用以下代码:
$comment = new \Documents\Comment($_POST['comment_text']);
$dm->createQueryBuilder('Posts')
->update()
->field('comments')->push($comment)
->field('_id')->equals(new \MongoId($_POST['id']))
->getQuery()
->execute();
但是遇到了上述错误。