2017-05-09 120 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

爲'symfony + mongodb例子'做'CTRL + F'並尋找'mongo' [here](http://www.inanzzz.com/index.php/posts/symfony)。例如[嵌入式在symfony中的簡單教條mongodb示例](http://www.inanzzz.com/index.php/post/aefp/simple-doctrine-mongodb-example-for-embed-one-in-symfony) – BentCoder

回答

3

清除緩存。由於數據是正確保存的,因此映射是正確的,那麼Hydrator已經就位並且沒有使用新字段進行更新,這是什麼錯誤。爲避免這種情況,您可以考慮在開發過程中使用AUTOGENERATE_EVAL策略來保持水化器/代理自動生成。

+0

謝謝。此問題是由於緩存引起的。 – Daniel