Самый простой способ, который я могу придумать, это просто установить двунаправленную связь между Article и Tag:
class Article
{
/**
* @ORM\ManyToMany(targetEntity="Tag", inversedBy="articles")
*/
private $tags;
}
class Tag
{
/**
* @ORM\ManyToMany(targetEntity="Article", mappedBy="tags")
*/
private $articles;
}
Затем вы можете (при условии, что вы настроили стандартные методы получения и установки) использовать $tag->getArticles()->count();
, где $tag
- это управляемая сущность тега, чтобы получить количество статей, прикрепленных к этому тегу.Это работает, потому что при заполнении свойств отношений ToMany Doctrine использует экземпляр Doctrine\Common\Collections\ArrayCollection
.Проверьте источник здесь .
Кроме того, если вы идете по этому маршруту, обязательно прочитайте документацию по выбору собственной и обратной стороны здесь .