Bonjour,

Voilà j'effectue une requête personnalisée pour récupérer des informations provenant d'une autres entités mais le problème est que j'arrive pas l'afficher dans mon fichier twig portant ma requête est correcte. Voilà ce que j'obtiens si je dump ma variable.

object(Lab\ScheduleBundle\Entity\Game)[289]
  private 'id' => int 1
  private 'venue' => string 'vs' (length=2)
  private 'date' => 
    object(DateTime)[259]
      public 'date' => string '2013-04-17 00:00:00' (length=19)
      public 'timezone_type' => int 3
      public 'timezone' => string 'UTC' (length=3)
  private 'result' => string 'W' (length=1)
  private 'userScore' => int 3
  private 'cpuScore' => int 2
  private 'info' => string 'BOS leads series 1-0' (length=20)
  private 'overtime' => boolean true
  private 'otNumber' => int 1
  private 'user_team' => 
    object(Lab\ScheduleBundle\Entity\Team)[287]
      private 'id' => int 1
      private 'location' => string 'Boston' (length=6)
      private 'name' => string 'Bruins' (length=6)
      private 'abbr' => string 'bos' (length=3)
  private 'cpu_team' => 
    object(Lab\ScheduleBundle\Entity\Team)[286]
      private 'id' => int 2
      private 'location' => string 'Toronto' (length=7)
      private 'name' => string 'Maple Leafs' (length=11)
      private 'abbr' => string 'tor' (length=3)

Moi ce que je souhaiterai c'est afficher le "Toronto" qui se situe dans le private 'cpu_team'. Pour cela j'ai fait 'game.cpu_team.location' mais cela ne fonctionne pas Symfony m'affiche "Method "cpu_team" for object "Lab\ScheduleBundle\Entity\Game" does not exist in LabScheduleBundle:Schedule:index.html.twig at line 20".

La ligne correspond à {{ game.cpu_team.location }}.

4 réponses


palmer08
Auteur
Réponse acceptée

C'est bon j'ai trouvé. Il faut pas inscrire "game.cpu_team.location" mais "game.cputeam.location".

Salut !
Essayes de lancer un petit

php app/console doctrine:generate:entities

et ensuite reteste ton code. L'erreur viens probablement du fait que tu as oublié de faire un getter pour cpu_team

palmer08
Auteur

Non le getter est bien présent.

public function getCpuTeam()
{
   return $this->cpu_team;
}

Bah oui donc faut pas mettre cpu_team mais cpuTeam... Faut respecter la convention upperacse.
Ca, ça va fonctionner : {{ game.cpuTeam.location }}