Symfony 2 запрашивает объекты, сопоставленные с доктриной - PullRequest
1 голос
/ 16 января 2012

У меня возникла проблема при запросе информации между объектами в моем контроллере.Пожалуйста, дайте мне знать, если мне нужно расширить предоставленную информацию (я изменил имена объектов, чтобы сделать их более понятными вне контекста).

У меня есть двунаправленное сопоставление 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....
}

Заранее спасибо!

...