Mongodb doctrine查询不加载引用的对象

时间:2014-09-19 22:16:51

标签: php mongodb symfony doctrine-orm

我有这些课程:

/**
 * @MongoDB\Document
*/
class Expansion
{
    /**
     * @MongoDB\Id
     */
    protected $id;

    /**
     * @MongoDB\String
     */
    protected $name;

/**
 * @MongoDB\Document
 */
class Product
{
    /**
     * @MongoDB\Id
     */
    protected $id;

    /**
     * @MongoDB\ReferenceOne(targetDocument="Expansion")
     */
    protected $expansion;

    /**
     * @MongoDB\String
     */
    protected $number; 

}

 /**
 * @MongoDB\Document
 */
class Price
{

    /**
     * @MongoDB\Id
     */
    protected $id;

    /**
     * @MongoDB\ReferenceOne(targetDocument="Product")
     */
    protected $product;
}

如果我有任何Expansion的ID,我可以加载他提到的产品的每一个价格:

$db_expansion = $dm->getRepository('SampleCollectionBundle:Expansion')->findOneById($expansionId);

$db_product = $dm->createQueryBuilder('SampleCollectionBundle:Product')->select('id')->field('expansion')->references($db_expansion)->getQuery()->toArray();

$product_ids = array_keys($db_product);

$db_prices = $dm->createQueryBuilder('SampleCollectionBundle:Price')->field('product.id')->in($product_ids)->getQuery();

但是这个查询只返回简单的Price对象,我怎样才能得到(顺便说一下)Twig,产品的数字?我试过{{ price.product.number }},但显然不起作用。

0 个答案:

没有答案