我有一个文档,其中包含一个标记为持久性的字段作为集合
use Doctrine\ODM\MongoDB\Mapping\Annotations as ODM;
/** @ODM\Document */
class Item
{
/**
* @ODM\Collection
*/
protected $things;
}
默认情况下,当 Doctrine 从 Mongo 映射值时,它会将 $things 设置为 Doctrine\Common\Collections\ArrayCollection 的一个实例。
然而,这违反了我的域模型,因为我的域对象期望 $things 属性是我自己的集合类 ThingsCollection 的一个实例。此类对事物列表进行各种验证。
我怎样才能告诉 Doctrine 使用我的 ThingsCollection 类呢?我想我将不得不让 ThingsCollection 类实现 Doctrine\Common\Collections\Collection 接口,但如果我能首先弄清楚如何告诉 Doctrine 映射,这不是问题。