0

Doctrine MongoDB ODM と Symfony 2 でドキュメントを埋め込む際に問題があります。

問題を明らかにするために、文書 product embeddedOne productInformation と productInformation embedOne productInformationAddress があります。

クエリを実行するには、次のようなものを使用します。

/**
 * @ODM\Document 
 **/
class product {
    /**
     * @ODM\EmbedOne(targetDocument="productInformation")
     **/
    protected $informations;
}

/**
 * @ODM\EmbeddedDocument 
 **/
class productInformations {
    /**
     * @ODM\EmbedOne(targetDocument="productInformationAddress")
     **/
    protected $address;

    /**
     * @ODM\Collection
     **/
    protected $attr1 = array();

    /**
     * @ODM\String
     **/
    protected $attr2
}

/**
 * @ODM\EmbeddedDocument 
 **/
class productInformationAddress {
    /** ... suff ... /*
}

クエリを実行すると:

class productRepository {
    public function fetchOne($id) {
        return $this->createQueryBuilder()
            ->field('id')->equals($id)
            ->getQuery()
            ->getSingleResult();
    }
}

しかし、なぜ私が得ることができないのか理解できません$product->getInformations()->getAddress()。それは常に返されnullます...

何か案が?

4

1 に答える 1

0

投稿したコードに問題はありませんが、ネストされた埋め込みドキュメントに対するODMの機能テストを読むと役立つでしょう。EmbeddedTest.phpでは、対象となるメソッドは、クラスEmbeddedTestLevel2と同等の、、およびを使用するものになります。productInformationAddresstestRemoveAddDeepEmbedded()

于 2012-08-02T18:10:42.907 に答える