title: Neither the property "id" nor one of the methods "id()", [...]"__call()" exist and have public access in class "Doctrine\ORM\PersistentCollection"
body: <p>For the life of me I can't get this to work. I have a Many-To-One relationship between <strong>Round</strong> and <strong>Program</strong> Entity. <strong>Program</strong> is related to <strong>ProgramDetail</strong> by One-To-Many.</p>
  
  <p>Basically <strong>Round</strong> &lt; Many-To-One > <strong>Program</strong> &lt; One-To-Many > <strong>ProgramDetail</strong>.</p>
  
  <p><strong>Round</strong> Entity</p>
  
  <pre><code>/**
   * @ORM\ManyToOne(targetEntity="App\Entity\Program", inversedBy="rounds")
   * @ORM\JoinColumn(nullable=false)
   */
  private $programs;
  </code></pre>
  
  <p><strong>Program</strong> Entity</p>
  
  <pre><code>/**
   * @ORM\OneToMany(targetEntity="App\Entity\Round", mappedBy="programs")
   */
  private $rounds;
  
  /**
   * @ORM\OneToMany(targetEntity="App\Entity\ProgramDetail", mappedBy="program")
   */
  private $details;
  </code></pre>
  
  <p><strong>ProgramDetail</strong> Entity</p>
  
  <pre><code>/**
   * @ORM\ManyToOne(targetEntity="App\Entity\Program", inversedBy="details")
   * @ORM\JoinColumn(nullable=false)
   */
  private $program;
  </code></pre>
  
  <p>Here is how i query all existing <strong>Rounds</strong> with according to it <strong>ProgramDetail</strong>.</p>
  
  <pre><code>// RoundRepository.php
  
  public function getRoundsWithProgramDetails()
  {
      return $this-&gt;createQueryBuilder('round')
                  -&gt;leftJoin('round.programs', 'rp')
                  -&gt;leftJoin('rp.details', 'pd')
                  -&gt;getQuery()-&gt;execute();
  }
  </code></pre>
  
  <p>Here is how I try output it</p>
  
  <pre><code>{% for round in rounds %}
  &lt;tr&gt;
      &lt;td&gt;{{ round.year }}&lt;/td&gt;
      &lt;td&gt;{{ round.programs.details.id }}&lt;/td&gt;
      &lt;td&gt;{{ round.scoreSendDate|date('m-d-Y') }}&lt;/td&gt;
      &lt;td&gt;{{ round.sampleSendDate|date('m-d-Y') }}&lt;/td&gt;
      &lt;td&gt;{{ round.resultSendDate|date('m-d-Y') }}&lt;/td&gt;
      &lt;td&gt;{{ round.status }}&lt;/td&gt;
  &lt;/tr&gt;
  {% endfor %}
  </code></pre>
  
  <p>If I get this done I'll at once have like 40% progress on my project since I have mostly such problems. Any help appreciated</p>