我有兩個實體(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