Symfony2 と Doctrine2 ODM (mongoDB) に問題があります。「ステータス」というコレクションにオブジェクトを永続化しようとしています。これは非常に単純なオブジェクトであり、参照はまったくなく、'name' という名前のプロパティが 1 つだけです。これが私の Status ドキュメント クラスのコードです。
<?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 行目
この問題の最も奇妙な部分は、Status オブジェクトがデータベースに保存されていることですが、このエラーが発生してコードがクラッシュすることです。ただ、解決方法がわかりません...
誰かがこの問題に遭遇し、それを修正する方法を知っているなら、それは非常に役に立ちます:)
ありがとう !