Symfony4 / Doctrine, как выбрать «отдельные» объекты? getResult () возвращает массив строк, а не массив объектов - PullRequest
0 голосов
/ 06 ноября 2018

В Symfony4 / Doctrine мне нужно выбрать все «отдельные» объекты с помощью пользовательского метода репозитория, ниже простого примера:

Минимальная таблица примеров сущности:

enter image description here

Простой $em->getRepository(MyEntity::class)->findAll(); возвращает все данные моей таблицы в структуре объекта.

Я ищу способ выполнить тот же запрос с отличным отношением к имени столбца. В моем примере этот запрос должен возвращать объекты 1, 3 и 5.

Я попробовал пользовательский метод хранилища этого объекта:

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

Но $res var содержит массив строковых результатов, а не массив объектов (я хочу массив объектов Object).

Как я могу это сделать?

1 Ответ

0 голосов
/ 06 ноября 2018

Попробуйте group by myentity.name вместо distinct.

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

Это должно сделать работу, как ожидалось.

...