我有两个实体(Item & Tag)通过双向ManyToMany关系链接,我想显示实际(关键字)中使用的实体(Tag)记录其他实体(项目):如何在ManyToMany Doctrine关系中选择已使用的项目
这里是我的项目实体:
class Item
{
/**
* @ORM\ManyToMany(targetEntity="MyBundle\Entity\Tag", inversedBy="items")
*/
private $tags;
}
我的标签enity:
class Tag
{
/**
* @ORM\ManyToMany(targetEntity="MyBundle\Entity\Item", mappedBy="tags")
*/
private $items;
}
现在在我的标签库我已经试过这样:
class TagRepository extends \Doctrine\ORM\EntityRepository
{
public function findAllUsed()
{
return $this->createQueryBuilder('t')
->leftJoin('t.items', 'items')
->groupBy('items.id')
->having('COUNT(t.id) > 0')
->orderBy('t.name', 'ASC')
->getQuery()
->getResult();
}
}
但它没有给我我期待的结果......任何人都可以帮忙吗?谢谢!
第二种解决方案简单易行!我应该多学习一点SQL语言......感谢Vinicius! – VinZ