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 %}
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
