2011-11-13 25 views
1

誰でもDoctrineのQuery \ Builderをスタンドアロンツールとして使用しますか?Doctrine ODM MongoDB Query Builderのスタンドアロン使用

Query Managerには、MongoDBで要求されたドキュメントの クラスが定義されている必要があります。

あなたのような定義されたクラスしている場合:

<?php 

$user = $dm->createQueryBuilder('User') 
    ->field('username')->equals('jwage') 
    ->getQuery() 
    ->getSingleResult(); 

ドキュメントクラスを定義せずにクエリー\ Builderを使用行う方法があります:

<?php 

namespace Documents; 

/** @Document */ 
class User 
{ 
    // ... 

    /** @Field(type="string") */ 
    private $username; 
} 

は、その後、あなたが次の操作を行うことができますか?

ご協力いただきありがとうございます。

答えて

1

ClassMetaDataを取得したらすぐにQueryBuilderを使用できます。 このクラスメタデータは、クラスプロパティをデータ型、関連付けなどの内部情報にマッピングすることに関するものです。

このクラスのメタデータは、実際のクラスを持たずに定義できます。 さまざまなアプローチがありますが、その1つはDoctrine\ODM\MongoDB\Tools\DisconnectedClassMetadataFactoryクラスを使用し、yamlまたはxmlマッピングを使用して関連する情報をフィードすることです。

良いclassMetadataFactoryNameオプションを使用してDocumentManagerを設定する必要があります。

関連する問題