在查询控制器中对象的信息时遇到问题。如果我需要扩展所提供的信息,请告诉我(我在上下文之外更改了对象的名称)。
我有两个实体的oneToOne双向映射,这两个实体位于不同的包中。
对象1:
oneToOne:
person:
targetEntity: Program\PersonBundle\Entity\Person
fetch: EAGER
inversedBy: group
joinColumn:
name: id
referencedColumnName: id
对象2:
oneToOne:
group:
targetEntity: Program\GroupBundle\Entity\Group
mappedBy: person
fetch: EAGER
我在每个对象的每个Entity.php文件中都有适当的变量。我的问题是关于在我的控制器中访问此信息。当我尝试访问捆绑包中的信息时,它不会在第一次调用时抓取它。但是,当我再次调用它时,它会正确地抓取信息。有人知道为什么吗?不是'fetch:EAGER'应该解决这个问题吗?
$em = $this->getDoctrine()->getEntityManager();
$personsRepository = $em->getRepository("PersonBundle:Person");
foreach($persons as $person)
{
$person->getGroup()->getName(); // This doesn't return anything
$person->getGroup()->getName(); // This returns the group name....
}
提前致谢!