Doctrine ODM MongoDB EmbedOne 文档未加载

Doctrine ODM MongoDB EmbedOne Document not loaded

我需要为我们的预订存储一些数据,其中包括客户数据,我希望将其作为预订文档中的嵌入文档。使用我当前的配置,所有数据都保存在 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
}

清除缓存。映射是可以的,因为数据是正确持久化的,错误的是 Hydrator 已经存在并且没有用新字段更新。为避免这种情况,您可以考虑在开发过程中使用 AUTOGENERATE_EVAL 策略 hydrators/proxies 自动生成。