我有一个文档用户中引用的文档人员。当我检索用户时,它没有嵌入一个人对象,而是一个人代理对象。有没有办法“强制”代理成为“完整”文档(所以 Person proxy => Person)。
我尝试调用一个方法来检索其他数据(因此触发了 __load,但对象仍然是“代理”版本。
我希望有人能比 ODM 的文档更清楚地说明这一点。
最佳答案
您可以通过 Priming References 完成此操作.
示例文档:
/** @Document */
class User
{
/** @ReferenceOne(targetDocument="Person") */
private $person;
}
/** @Document */
class Person
{
// ...
}
使用 QueryBuilder:
/* @var $user User */
$user = $dm->createQueryBuilder('User')
->field('person')->prime(true)
->getQuery()
->getSingleResult();
关于php - 如何强制 Doctrine MongoDB ODM 文档代理转换为 'original' 文档?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6280299/