Как получить все возможные значения поля сущности в Symfony 2.8 с помощью Doctrine

Предположим, у меня есть объект User со свойством country. country — это просто строка, и многие пользователи могут установить один и тот же country. Тогда как получить список всех уникальных стран всех пользователей? Я использую Symfony2.8 с Doctrine.


person dawomiit    schedule 13.04.2017    source источник


Ответы (1)


вам нужно использовать предложение DISTINCT: https://www.w3schools.com/sql/sql_distinct.asp

Вот как вы можете сделать это из контроллера:

 $qb = $em->getRepository("MyBundle:Country")->createQueryBuilder("c");

 $countries = $qb->select("c")
    ->distinct(true)
    ->getQuery()
    ->getResult();

один лайнер:

$countries = $em->getRepository("MyBundle:Country")->findBy(array('distinct' => true));

Однако на вашем месте я бы создал уникальный объект страны и установил отношения ManyToOne между пользователем и страной. Это было бы гораздо более чистым решением IMO.

person Mawcel    schedule 13.04.2017