当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《(Symfony)DoctrineORMfindAll:太多的信息》经验,为你挑选了1个好方法。

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

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



1> lxg..:

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

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

$ids = array_map("current", $ids);

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

推荐阅读
赛亚兔备_393
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有