【发布时间】:2018-01-19 19:27:26
【问题描述】:
好的,我得到了三个表'articles'、'tags'和'articles_tags',前两者之间是多对多的关系。
现在我正在尝试查询“查找所有带有 ID 3 标签的文章”
我一直在尝试这个:
$query = $em
->createQueryBuilder()
->select("a", "t")
->from("Models\Article", "a")
->leftJoin("a.tags", "t")
->where("t.id = :tagid")
->setParameter("tagid", $_GET['id'])
->getQuery();
$articles = $query->getResult();
确实可以找到正确的文章,但这些文章现在只显示为具有一个标签,即使它们有更多标签。
我觉得我在某个地方犯了一个愚蠢的错误,或者可能选择了完全错误的方法,但我一直盯着它,似乎找不到它。
【问题讨论】:
-
我建议您只选择查询中的文章实体,然后使用实体关系访问标签(类似于
$article->getTags()) -
是的,但是我必须在文章数组上做一个
foreach,并且只过滤掉我需要的那些。如果我在数据库中只有 10 个实体而不是更多,那很好。还是我以某种方式误解了这一点?
标签: php doctrine-orm