コレクションとして永続化するようにマークされたフィールドを持つドキュメントがあります
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 に伝える方法を理解できれば問題ありません。