Lecture donnée

Par palmer08, il y a 12 ans


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

Alex-D, il y a 12 ans

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, il y a 12 ans

Non le getter est bien présent.

public function getCpuTeam()
{
   return $this->cpu_team;
}
Alex-D, il y a 12 ans

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

palmer08, il y a 12 ans

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