Symfony4 / Doctrine,如何 select 'distinct' 对象? getResult() return 一个字符串数组,而不是一个对象数组

Symfony4 / Doctrine, how select 'distinct' objects ? getResult() return an array of string, not an array of object

从 Symfony4/Doctrine 开始,我需要 select 所有 "distinct" 具有实体存储库自定义方法的对象,下面是一个简单的示例:

实体的最小示例 table:

一个简单的 $em->getRepository(MyEntity::class)->findAll(); return 我的 table 对象结构中的所有数据。

我正在寻找一种方法来使用与列名相关的不同查询来执行相同的查询。对于我的示例,此查询必须 return 对象 1、3 和 5。

我尝试了这个实体的存储库自定义方法:

public function getDistinct(){
    $query = $this->createQueryBuilder('myentity');
    $res = $query
        ->select("myentity.name")
        ->distinct(true)
        ->getQuery()
        ->getResult();
    return $res;
}

但是 $res var 包含一个字符串结果数组,而不是一个对象数组(我想要一个实体对象数组)。

我该怎么做?

尝试 group by myentity.name 而不是 distinct

$res = $query
   ->select("myentity")
   ->groupBy("myentity.name")
   ->getQuery()
   ->getResult();

这应该按预期完成工作。