php – 如何使用Symfony将实体分组为其他实体
发布时间:2020-12-13 15:55:27 所属栏目:PHP教程 来源:网络整理
导读:我正在使用Doctrine从事Symfony项目 所以我有3个实体: 项目 活动 类别 一个项目有几个活动,一个活动也有几个类别 我正在尝试按项目类别进行所有活动. 这样做的正确方法是什么? 我尝试使用QueryBuilder,但似乎你不能用其他实体分组,只能用一个值(告诉我,如
我正在使用Doctrine从事Symfony项目
所以我有3个实体: >项目 一个项目有几个活动,一个活动也有几个类别 我正在尝试按项目类别进行所有活动. 这样做的正确方法是什么? 我尝试使用QueryBuilder,但似乎你不能用其他实体分组,只能用一个值(告诉我,如果我错了) $q = $repo->createQueryBuilder('a') ->leftJoin('a.project','p') ->leftJoin('a.categories','category') ->where('p.id = ?1') ->setParameter(1,$projectId) ->groupBy('category.id') ->getQuery(); return $q->getResult(); 编辑 -Category1 -Activity1 -Activity2 -Activity3 -Category2 -Activity3 -Activity4 -Category4 -Activity1 -Activity2 -Activity3 -Activity4 -Activity5 我这样做是好的,我的代码错了吗?或者到处都是我的错? 非常感谢你的时间! 解决方法
您应该获取并迭代类别,而不是操作:
$q = $categoryRepo->createQueryBuilder('c') ->leftJoin('c.actions','a') ->leftJoin('a.project','p') ->where('p.id = ?1') ->setParameter(1,$projectId) ->getQuery(); return $q->getResult(); 然后,在你的模板中(你使用的是Twig吗?) {% for category in categories %} - {{ category }} {% for action in category.actions if action.project.id = 1 %} - {{ action }} {% endfor %} {% endfor %} (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |