我想知道是否可以修改$this->getDoctrine()->getRepository('AppBundle:Foo')->findAll()
,以便我只获取相关实体的 ID 。因为Foo与“一个用户”和“多个组”相关,所以我总是在结果中得到“整个用户对象”和“所有组对象”,这使得结果非常不清楚。那么,是否可以只打印相关对象的ID?
我希望有人可以帮助我。谢谢!
答案 0 :(得分:5)
您不必检索完整实体,也可以只选择所需的字段。您将获得一个普通数组列表,而不是实体列表,其中每个数组都包含所选字段。
$ids = $em->createQueryBuilder() // $em is your entity manager
->select("foo.id")
->from("AppBundle:Foo", "foo")
->getQuery()->getResult();
$ids = array_map("current", $ids);
注意:最后一行是可选的,当您只选择一个字段时,它会“展平”您的数组。
答案 1 :(得分:-1)
您必须编写自己的自定义查询:
$query = $this->getDoctrine()->getManager()->createNativeQuery('SELECT id FROM foo');
$foos= $query->getResult();
以上应该有效 有关详细信息,请参阅此处http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/native-sql.html