Doctrine orm 原则:将实体注入其他实体的财产

Doctrine orm 原则:将实体注入其他实体的财产,doctrine-orm,Doctrine Orm,我的symfony项目有一个类Person在可重用包中。在另一个包中,我有一个class财务记录 因为我想将捆绑包解耦,所以我决定向FinancialRecord添加一个属性personId 现在正在加载财务记录列表我还需要访问个人,因此在我的控制器中: $financialRecords = $em->getRepository('MyFinancialBundle:FinancialRecord')->findByYear($year); foreach ($financialR

我的symfony项目有一个类Person在可重用包中。在另一个包中,我有一个class财务记录

因为我想将捆绑包解耦,所以我决定向FinancialRecord添加一个属性personId

现在正在加载财务记录列表我还需要访问个人,因此在我的控制器中:

$financialRecords = $em->getRepository('MyFinancialBundle:FinancialRecord')->findByYear($year);
foreach ($financialRecords as $key=>$financialRecord) {
    $person = $otherEm->getRepository('MyUserBundle:Person')->findOneById($financialRecord->getPersonId());
    $financialRecord->person = $person;
}
基本上,这里发生的事情是,我将person注入到FinancialRecord中,这样我就可以在我的twig模板中访问person。请注意,使用了两个不同的实体管理器


有没有办法将这两个实体组合成一个DQL查询?目前,我的调试工具栏显示,由于此操作,已执行了490个查询。

要创建两个独立的捆绑包,您可以使用金融捆绑包中的
Person
接口-
IPerson
。稍后,在包含Person捆绑包的代码中,您可以使用此处描述的方法将此接口映射到特定实体-