微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – 如何使用Symfony将实体分组为其他实体

我正在使用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 %}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐