Вам стоит взглянуть на
различные режимы гидраторов в Doctrine. В частности в вашем случае вы, скорее всего захотите использовать
scalar hydration по результатам выборки одного столбца. Вместе с этим режимом очень хорошо работает
array_column(), так что ваш метод мог бы выглядеть примерно вот так (в примере идёт выборка столбца
email
из entity
User
):
public function getEmails()
{
return array_column($this->getEntityManager()
->createQuery('select u.email from User u')
->getResult(\Doctrine\ORM\Query::HYDRATE_SCALAR), 'u_email');
}
или, если вам, к примеру, необходима связь между id и email:
public function getEmails()
{
return array_column($this->getEntityManager()
->createQuery('select u.id, u.email from User u')
->getResult(\Doctrine\ORM\Query::HYDRATE_SCALAR), 'u_email', 'u_id');
}