首页 > 解决方案 > Symfony/Doctrine2 和关联实体

问题描述

通常在自定义存储库类中查询时,我使用如下内容:

SELECT * FROM BundleName:Entity

但是我该怎么做关联实体?

我有一个实体“票”和一个实体“标签”。这是一个多对多关系。

在 phpMyAdmin 中,我有一个 ticket_tag 关联表,但是如何使用 Doctrine 获得它?

谢谢

标签: symfonydoctrine-orm

解决方案


createQueryBuilder如果您对实体有有效的关系,您应该使用它来处理您的自定义查询要求。例如:在票据存储库中,您应该像这样处理,如果您想做更多操作,那么您应该从这里了解更多信息:https ://symfony.com/doc/3.3/doctrine/repository.html

$query = $this->createQueryBuilder('t')
     ->select('count(t.id) as total_ticket, tag.id as tagId')
     ->leftJoin('t.tags', 'tag')
     ->groupBy('tag.id')
;

return $query->getQuery()->getResult();

推荐阅读