2015-09-16 7 views
0

В настоящее время работает над приложением Symfony2, и у меня возникают проблемы с ленивой загрузкой объектов.Доступ к связанному объекту в Twig

я в настоящее время получить все мои матчи с

$matches = $this->getDoctrine() 
     ->getRepository('AppBundle:Matchgame') 
     ->findByTournament($tournament); 

Все матчи состоят из нескольких деталей, таких как roundnumber и прочее, а также удерживает участников. Эти участники связаны с отношением ManyToOne.

/** 
    * @ORM\ManyToOne(targetEntity="User") 
    */ 
    private $participant1; 

    /** 
    * @ORM\ManyToOne(targetEntity="User") 
    */ 
    private $participant2; 

Когда я передать $ соответствует переменной в шаблон Twig

{% for match in matches %} 
     <p>{{ match.participant1.username }}</p> 
    {% endfor %} 

, а затем попытаться получить доступ к имени пользователя, я получаю ошибку

Impossible to access an attribute ("username") on a null variable in tournament/single.html.twig at line 46 

Как я уже сказал, это вероятно, из-за ленивой загрузки. Но есть ли какое-нибудь обходное решение для этого? Другими словами, могу ли я сообщить Доктрине, чтобы полностью загрузить запрос?

Спасибо!

ответ

1

Вы можете попробовать:

/** 
* @ORM\ManyToOne(targetEntity="User", fetch="EAGER") 
*/ 
+0

Это прекрасно решить мой вопрос, спасибо! – Neglexis

Смежные вопросы