0

私は 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 の識別子を返しませんでした

私は何が間違っているのか分かりません。助けはありますか?

4

2 に答える 2

0

おそらくオブジェクトを取得しているときに var_dump($importFile) を実行していませんか?

于 2014-12-10T19:31:34.283 に答える