如何强制Doctrine MongoDB ODM文档代理转换为"原始"文档?

Teu*_*eun 7 php mongodb doctrine-odm

我在文档User中引用了一个文档Person.当我检索User时,它没有嵌入Person对象,而是Person代理对象.有没有办法"强制"代理成为"完整"文档(所以Person proxy => Person).

我已经尝试调用一个方法来检索其他数据(因此__load被触发,但对象仍然是'代理'版本.

我希望有人能够比ODM的文件更能说清楚这一点.

lee*_*eek 3

您可以通过启动参考文献来完成此任务。

示例文档:

/** @Document */
class User
{
    /** @ReferenceOne(targetDocument="Person") */
    private $person;
}

/** @Document */
class Person
{
    // ...
}
Run Code Online (Sandbox Code Playgroud)

使用查询生成器:

/* @var $user User */
$user = $dm->createQueryBuilder('User')
    ->field('person')->prime(true)
    ->getQuery()
    ->getSingleResult();
Run Code Online (Sandbox Code Playgroud)