【发布时间】:2011-09-23 09:48:04
【问题描述】:
这可能是一个简单的问题,但我无法弄清楚也找不到答案。
我有一个简单的 Article 和 ArticleTag 实体,它们具有多对多的关系。如何获取带有某个(或多个)标签的所有文章?
我的以下尝试:
$qb = $repository->createQueryBuilder('a')
// ...
->andWhere('a.tags = :tag')
->setParameter('tag', 'mytag')
// ...
或
->andWhere(':tag in a.tags')
->setParameter('tag', 'mytag')
...没用。谢谢!
【问题讨论】:
-
多对多关系是单向的还是双向的?
-
@Problematic:我使用了单向映射。哪个更适合我的场景?
-
如果你使用双向映射,你可以在你的标签中添加一个
getArticles()方法,并使用标签获取文章的集合。 -
@Problematic:我也考虑过这一点,但这对于我的场景(不同类型的可能过滤器)来说不是很灵活。我已经发布了我的最终解决方案作为答案。
标签: php many-to-many doctrine-orm symfony