0
我们假设实体User
的属性为country
。 country
只是一个字符串,许多用户可以设置相同的country
。那么如何获得所有用户的所有独特国家的名单?我正在使用Symfony2.8与Doctrine。如何在Symfony 2.8中使用Doctrine获取实体字段的所有可能值
我们假设实体User
的属性为country
。 country
只是一个字符串,许多用户可以设置相同的country
。那么如何获得所有用户的所有独特国家的名单?我正在使用Symfony2.8与Doctrine。如何在Symfony 2.8中使用Doctrine获取实体字段的所有可能值
您需要使用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