Doctrine ODM MongoDB未加载EmbedOne文档

时间:2017-05-09 09:27:19

标签: php symfony doctrine doctrine-odm odm

我需要为我们的预订存储一些数据,其中包括客户数据,我希望将其作为预订文档中的嵌入文档。使用我当前的配置,所有数据都保存在MongoDB中,但是当我加载预订文档时,没有相关的客户对象。我忘记了一些配置还是其他什么?

这就是我的文档的样子:

预订文件:

<?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
}

1 个答案:

答案 0 :(得分:3)

清除缓存。映射是正常的,因为数据是正确保留的,错误的是Hydrator已经到位并且未使用新字段进行更新。为了避免这种情况,您可以考虑在开发过程中使用AUTOGENERATE_EVAL策略进行水合器/代理自动生成。