【发布时间】:2012-04-08 22:10:14
【问题描述】:
我需要一个 DQL 查询,该查询将返回给定 tag 的所有 posts。
posts 和 tags 具有多对多关系,给定一个 tag.slug 我应该能够获取与该标签相关的所有帖子,但是如何?
更新:
我将 Doctrine 2.1 与 Symfony 2 一起使用,我的实体如下所示:
/**
* @ORM\Entity
* @ORM\Table(name="articles__posts")
*/
class ArticlePost
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\ManyToMany(targetEntity="ArticleTag", inversedBy="posts")
* @ORM\JoinTable(name="articles__posts_tags")
*/
protected $tags;
}
/**
* @ORM\Entity
* @ORM\Table(name="articles__tags")
* @UniqueEntity(fields="slug")
*/
class ArticleTag
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\ManyToMany(targetEntity="ArticlePost", mappedBy="tags")
*/
protected $posts;
}
【问题讨论】:
-
您需要的是一个“存在”查询,但如果没有详细信息,就很难说出更具体的内容,例如教义版本以及表格结构和关联。