0

在我的项目中,我正在使用一个文档“问题”,它在设置问题的类别并刷新我的数据库中没有任何更改之后引用(许多到另一个文档“类别”)有我的代码

    $dm = $this->getDocumentManager();

    $question = $this->getDocumentManager()->getRepository('ATS\QuizzBundle\Document\Question')->findOneByQuestion("a?");
    $category = $this->getDocumentManager()->getRepository('ATS\QuizzBundle\Document\Category')->findOneByLabel("Logic");

    $question->addCategory($category);

    $dm->flush();

我的数据库没有任何变化,有人可以帮忙吗?这是我在问题文档中的映射:

 /**
 *@MongoDB\ReferenceMany(targetDocument="Category") 
*/
  protected $category 
4

1 回答 1

1

根据您的 ChangeTrackingPolicy,您可能需要在刷新之前保留问题。

 $dm->persist($question);
 $dm->flush();

通过持久化实体,您可以确保实体中的任何更改都在 UnitOfWork 中注册。通过刷新,您可以将这些操作发送到数据库。

Persist 不会直接导致对数据库的查询,因为您可能希望保留很多实体。因此,所有操作都被“缓冲”,直到在文档管理器上调用刷新。

于 2015-04-14T16:06:23.170 回答