I'm joining a table using ManyToMany realationsships
$query = $this->createQueryBuilder('f');
$query->select("f.value value, f.description description, f.optionsValue
o.code optionCode, l.code localeCode")
->leftJoin('f.locales', 'l')
->leftJoin('f.options', 'o')
....other joins
return $query->getQuery()->getArrayResult();
....
/**
* @ORM\ManyToMany(targetEntity="Locale")
* @ORM\JoinTable(name="w_file_values_locales",
* joinColumns={@ORM\JoinColumn(name="file_value_id", referencedColumnName="id")},
* inverseJoinColumns={@ORM\JoinColumn(name="locale_id", referencedColumnName="id")}
* )
* @var ArrayCollection $locales
*/
private $locales;
/**
* @ORM\ManyToMany(targetEntity="Option")
* @ORM\JoinTable(name="w_file_values_options",
* joinColumns={@ORM\JoinColumn(name="file_value_id", referencedColumnName="id")},
* inverseJoinColumns={@ORM\JoinColumn(name="option_id", referencedColumnName="id")}
* )
* @var ArrayCollection $options
*/
private $options;
....
The problem is that the resulting Array doesn't return localeCode and optionCode as an Array of codes (strings) but returns only a string representing the first value of the 2 joined tables.