2017-05-09 11 views
1

予約のためにいくつかのデータを保存する必要があります。これには予約データ内に埋め込みドキュメントとして必要な顧客データが含まれています。現在の設定では、すべてのデータがMongoDBに保存されますが、予約文書をロードするときに、関連する顧客オブジェクトはありません。私は設定や他の何かを忘れましたか?Doctrine ODM MongoDB EmbedOneドキュメントがロードされていません

予約 - ドキュメント:

これは私の文書がどのように見えるかです

<?php 

namespace AppBundle\Document; 

use Doctrine\ODM\MongoDB\Mapping\Annotations as MongoDB; 

/** 
* @MongoDB\Document 
*/ 
class Booking 
{ 
    /** 
    * @MongoDB\EmbedOne(targetDocument="\AppBundle\Document\Customer") 
    */ 
    private $customer; 

    // getter and setter... 
} 

カスタマー・ドキュメント

<?php 

namespace AppBundle\Document; 

use Doctrine\ODM\MongoDB\Mapping\Annotations as MongoDB; 

/** 
* @MongoDB\EmbeddedDocument 
*/ 
class Customer 
{ 
    // fields, getter and setter 
} 
+0

代わりに '@MongoDB \ EmbedOne(targetDocument =" Customer ")'を試してください。 – BentCoder

+0

'CTRL + F'を実行し、symfony + mongodbの例については' mongo' [here](http://www.inanzzz.com/index.php/posts/symfony)を探してください。例えば[symfonyのEmbedOneの簡単な教訓mongodbの例](http://www.inanzzz.com/index.php/post/aefp/simple-doctrine-mongodb-example-for-embed-one-in-symfony) – BentCoder

答えて

3

クリアキャッシュ。データは正しく保存されているのでマッピングはOKですが、間違っているのはHydratorが既に存在し、新しいフィールドで更新されていないことです。このような状況を回避するには、開発中にhydrators/proxies自動生成のためにAUTOGENERATE_EVAL戦略を使用することを検討することができます。

+0

ありがとう。この問題は、キャッシュのために発生しました。 – Daniel

関連する問題