(Symfony)Doctrine ORM findAll:太多的信息

use*_*756 0 php symfony doctrine-orm

我想知道是否可以修改$this->getDoctrine()->getRepository('AppBundle:Foo')->findAll(),以便我只获取相关实体的ID.因为Foo与"一个用户"和"多个组"相关,所以我总是在结果中得到"整个用户对象"和"所有组对象",这使得结果非常不清楚.那么,是否可以只打印相关对象的ID?

我希望有一个人可以帮助我.谢谢!

lxg*_*lxg 5

您不必检索完整实体,也可以只选择所需的字段.您将获得一个普通数组列表,而不是实体列表,其中每个数组都包含所选字段.

$ids = $em->createQueryBuilder() // $em is your entity manager
    ->select("foo.id")
    ->from("AppBundle:Foo", "foo")
    ->getQuery()->getResult();

$ids = array_map("current", $ids);
Run Code Online (Sandbox Code Playgroud)

注意:最后一行是可选的,当您只选择一个字段时,它将"展平"您的数组.