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