Doctrine2 Un-À-Plusieurs, relation d'Auto-référencement

Dans mon "Sujet" de l'entité, j'ai un Un-À-Plusieurs, relation d'Auto-référencement $parent:$children.

class Topic
{
    /** @ORM\Id 
    * @Column(type="integer")
    * @ORM\GeneratedValue(strategy="IDENTITY")
    */
    private $id;

    /** @Column(length=40, unique=true) */
    private $name;

    /**
     * @ORM\ManyToOne(targetEntity="Topic", inversedBy="children")
     */
    private $parent;

    /**
     * @ORM\OneToMany(targetEntity="Topic", mappedBy="parent")
     */
    private $children;
}

Je peux me joindre sur le tableau pour le parent-enfants hiérarchie comme ceci:

return $this->getEntityManager()->createQuery('
    SELECT t, c FROM My\xxxBundle\Entity\Topic t 
    LEFT JOIN t.children c
    WHERE t.parent IS NULL
')
->getArrayResult();

Voici le bon de sortie:

array
  0 => 
    array
      'id' => int 1
      'name' => string 'Parent 1'
      'slug' => string 'p-1'
      'description' => null
      'children' => 
        array
          0 => 
            array
                'id' => int 2
                'name' => string 'Child 1-1'
                'slug' => string 'c-1-1'
                'description' => null
          1 => 
            array
                'id' => int 3
                'name' => string 'Child 1-2'
                'slug' => string 'c-1-2'
                'description' => null
  1 => 
    array
      'id' => int 4
      'name' => string 'Parent 2'
      'slug' => string 'p-2'
      'description' => null
      'children' => 
        array
          empty
...

mais si j'essaie d'aller chercher des colonnes spécifiques dans l'instruction SELECT:

SELECT t.name, c.name FROM My\xxxBundle\Entity\Topic t

- Je obtenir un tableau plat de l'enfant entités-je.e que c.name. Si un parent n'a pas d'enfants, je viens d'obtenir une valeur null pour son nom:

  1 => 
    array (size=1)
      'name' => string 'Child 1-1' (length=14)
  2 => 
    array (size=1)
      'name' => string 'Child 1-2' (length=14)
  3 => 
    array (size=1)
      'name' => null
  4 => 
    array (size=1)
      'name' => string 'Child 3-1' (length=5)

Sur la Marque de la suggestion, j'ai renommé le champ nom de l'entité enfant:

SELECT t.name, c.name AS child_name FROM My\xxxBundle\Entity\Topic t

mais j'ai toujours le mauvais format:

array
  0 => 
    array
      'name' => string 'Parent 1'
      'child_name' => string 'Child 1-1'
  1 => 
    array
      'name' => string 'Parent 1'
      'child_name' => string 'Child 1-2'
  2 => 
    array
      'name' => string 'Parent 2'
      'child_name' => string 'Child 2-1'

OriginalL'auteur qais | 2012-09-24