2017-05-09 7 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에 대한 간단한 교리 몽고 예제] (http://www.inanzzz.com/index.php/post/aefp/simple-doctrine-mongodb-example-for-embed-one-in-symfony) – BentCoder

답변

3

지우기 캐시를 내 문서처럼 보이게하는 방법

이입니다. 데이터가 올바르게 보존 되었기 때문에 매핑이 올바르지 만 Hydrator이 이미 있고 새 필드로 업데이트되지 않았기 때문에 잘못되었습니다. 이러한 상황을 피하기 위해 발전 도중 hydrators/proxies 자동 생성을위한 AUTOGENERATE_EVAL 전략 사용을 고려할 수 있습니다.

+0

감사합니다. . 이 문제는 캐시로 인해 발생했습니다. – Daniel