搜索与Doctrine2的多对多关系

时间:2011-09-23 09:48:04

标签: php many-to-many doctrine-orm symfony

这可能很容易,但我无法弄清楚,也找不到答案。

我有一个简单的文章和ArticleTag实体有很多关系。如何获得带有特定标签(或标签)的所有文章?

我的以下尝试:

$qb = $repository->createQueryBuilder('a')
    // ...
    ->andWhere('a.tags = :tag')
    ->setParameter('tag', 'mytag')
    // ...

    ->andWhere(':tag in a.tags')
    ->setParameter('tag', 'mytag')

......没用。谢谢!

2 个答案:

答案 0 :(得分:44)

获胜者是...... 鼓号,请 ......

$qb = $repository->createQueryBuilder('a')
    // ...
    ->andWhere(':tag MEMBER OF a.tags');
    ->setParameter('tag', $tag);
    // ...

感谢所有花时间阅读并思考我的问题的人!

答案 1 :(得分:1)

我认为你可以提供这个例子(来自文档):

$query = $em->createQuery('SELECT u.id FROM CmsUser u WHERE EXISTS (SELECT p.phonenumber FROM CmsPhonenumber p WHERE p.user = u.id)');