私は Symfony2 を mongodb と doctrine-odm で使用していますが、これらは奇妙な動作をしています。importFile ドキュメントとコンテキスト ドキュメントがあります。contexte ドキュメントは、以下のように importFile に参照されます。
/**
* @MongoDB\Document
*/
class ImportFile
{
[...]
/**
* @MongoDB\ReferenceOne(targetDocument="Contexte")
*/
private $contexte;
(ゲッターとセッターは問題ありません)。
私のコンテキスト ドキュメントは既に存在し、セッションに存在します。コンテキスト オブジェクトをダンプすると、必要なすべてのオブジェクト情報、ID、およびすべてのプロパティが得られます。
私のコントローラーでは、この contexte オブジェクトを importFile one に保存したいと思います:
$dm = $this->getDocumentManager();
$importFile->setContexte($contexte); // contexte object already exists and persisted
$dm->persist($importFile);
$dm->flush();
それは非常にシンプルに見え、そのように動作するはずですが、フラッシュ時にmongodbエラーが発生します:
識別子なしで DBRef を作成することはできません。UnitOfWork::getDocumentIdentifier() はクラス Contexte の識別子を返しませんでした
私は何が間違っているのか分かりません。助けはありますか?