1

Doctrine\ODM\MongoDB を使用しており、3 つの異なるタイプのドキュメントをコレクションに格納しています。それらのいくつかはミックスインです。

私の質問は、「これらのドキュメントをタイプではなく特性で区別できますか?」ということです。

    /** @ODM\DiscriminatorField(fieldName="type") */
    ...
    ActorType1.type: singer
    ActorType2.type: musician
    ActorType3.type: singerMusician

私は何かをしたい

    ActorType1.canDo: sing
    ActorType2.canDo: playMusic
    ActorType3.canDo: [sing, playMusic]

擬似コード:

find(<歌うことができるすべての人>) は、タイプ 1およびタイプ 3のすべてのアクタを返します。

これは可能ですか?

4

1 に答える 1

1

Doctrineは継承を本当に好きではないようです。

私の場合、基本的なディスクリミネーターを使用することさえできませんでした。

基本的に、同じコレクションに複数のドキュメントを格納する場合、親クラスから継承されたプロパティやPHPトレイトを介してインポートされたプロパティなど、共通のトレイトを持たないようにする必要があります。

将来的にはこれが可能になることを心から願っています。

于 2012-11-01T12:51:49.743 に答える