我对 Symfony2 和 Doctrine2 ODM (mongoDB) 有疑问。我正在尝试将一个名为“状态”的对象保存到我的集合中。这是一个非常简单的对象,绝对没有引用,只有一个名为“名称”的属性。这是我的状态文档类的代码。
<?php
namespace Site\BlablaBundle\Document;
use Doctrine\ODM\MongoDB\Mapping\Annotations as MongoDB;
/**
* Status
*
* @MongoDB\Document(repositoryClass="Site\BlablaBundle\Repository\StatusRepository")
*/
class Status
{
/**
* @MongoDB\Id(strategy="AUTO")
*/
protected $id;
/**
* @MongoDB\String
*/
protected $name;
/**
* Get id
*
* @return id $id
*/
public function getId()
{
return $this->id;
}
/**
* Set name
*
* @param string $name
* @return self
*/
public function setName($name)
{
$this->name = $name;
return $this;
}
/**
* Get name
*
* @return string $name
*/
public function getName()
{
return $this->name;
}
}
当我尝试从 EventListener 或我的 Controller 中持久保存 Status 对象时,我遇到了一个无法修复的问题。
<?php
$status = new Status();
$status->setName('Hello');
$documentManager->persist($status);
$documentManager->flush();
执行 flush() 方法时,出现此错误:
(!)致命错误:嵌套级别太深 - 递归依赖?在 C:\wamp\www\symfony\vendor\doctrine\mongodb\lib\Doctrine\MongoDB\Cursor.php 第 483 行
这个问题最奇怪的部分是我的状态对象存储在数据库中,但是引发了这个错误,导致我的代码崩溃。就是不知道怎么解决。。。
如果有人遇到这个问题并且知道如何解决它,那将非常有帮助:)
谢谢 !