Mongodb 在使用条令和ODM的Symfony2中,如何从嵌入文档中获取父文档?

Mongodb 在使用条令和ODM的Symfony2中,如何从嵌入文档中获取父文档?,mongodb,doctrine,symfony,Mongodb,Doctrine,Symfony,在MongoDB中使用Symfony2和Doctrine ODM,我需要从嵌入文档中的访问父文档 我有一个“Cardset”对象,它在“Card”对象上嵌入了许多 “Card”对象有一个“save image”方法,我希望它使用包含它的Cardset对象的ID作为其保存路径的一部分 我找不到从embeddeddocument中访问父文档的方法 如果我可以获得“DocumentManager”的实例,我可能可以使用“getParentAssociation()”方法。但是这个 $this->

在MongoDB中使用Symfony2和Doctrine ODM,我需要从嵌入文档中的访问父文档

我有一个“Cardset”对象,它在“Card”对象上嵌入了许多

“Card”对象有一个“save image”方法,我希望它使用包含它的Cardset对象的ID作为其保存路径的一部分

我找不到从embeddeddocument中访问父文档的方法

如果我可以获得“DocumentManager”的实例,我可能可以使用“getParentAssociation()”方法。但是这个

$this->get('doctrine.odm.mongodb.document_manager');
不工作,因为它不在控制器内。我没有足够的经验知道如何将DocumentManager变成一个可以从我的对象类内部使用的服务


有人能帮忙吗?

理论上,您可以使用UnitOfWork访问此功能:

$uo = $this->get('doctrine.odm.mongodb.document_manager')->getUnitOfWork();
list($mapping, $parent, $propertyPath) = $uo->getParentAssociation($embeddedDocument); 
编辑:您不应该从实体/文档(或嵌入文档)中获取它。
但是如果您想,您必须在“postLoad”上使用侦听器注入它:

我的问题的根本原因是我不应该这样做,这整段代码都属于其他地方。请看我接下来的问题:我无法从实体中访问“$container”或文档管理器,这一事实告诉我这样做是不对的。既然你的回答提到了这个弗洛里安人(尽管我相当肯定你在“编辑”之前的帖子是错误的),我将你的回答标记为接受并表示感谢。