У меня возникла проблема при запросе информации между объектами в моем контроллере.Пожалуйста, дайте мне знать, если мне нужно расширить предоставленную информацию (я изменил имена объектов, чтобы сделать их более понятными вне контекста).
У меня есть двунаправленное сопоставление 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....
}
Заранее спасибо!