0
でIDによって取得:http://www.doctrine-project.org/2010/07/20/mixing-types-of-documents.html教義ODMここで定義されたように、私は混合型のコレクションを持っている混合型
/**
* @Document(collection="my_documents")
* @DiscriminatorField(fieldName="type")
* @DiscriminatorMap({"article"="Article", "album"="Album"})
*/
class Article
{
// ...
}
アルバム
/**
* @Document(collection="my_documents")
* @DiscriminatorField(fieldName="type")
* @DiscriminatorMap({"article"="Article", "album"="Album"})
*/
class Album
{
// ...
}
私は、そのコレクションの任意のオブジェクトを取得したいと思いますIdを与えられた。
何か
$object = $dm->find(['Article','Album'], $id);
ように私は見つけるためにドキュメント名を取ることに使用することはできません。
$article = $dm->find('Article', $id);
$album = $dm->find('Album', $id);
私は自分のクエリを作成しようとしましたが、常にnullを返します。
$qb = $dm->createQueryBuilder(['Article', 'Album']);
$qb
->elemMatch(['id' => $id])
;
$result = $qb->getQuery()->execute();
ご存知ですか?
継承のないアイデアはありますか? – goto
理論的には、MongoDBから独自にデータを取得して( 'DocumentManager :: getDocumentCollection')、手動でHydratorを呼び出すことができますが、それは過度の – malarzm