Doctrine orm 原则:获取列表中父对象的所有对象

Doctrine orm 原则:获取列表中父对象的所有对象,doctrine-orm,dql,Doctrine Orm,Dql,假设我有两个对象article和comment。我想做的是获取所有注释,article.id位于(1,2,3,4)中。实现这一目标的最佳方式是什么?我是被迫使用JOIN吗?现在我有这样的东西 dql = "SELECT c FROM Comment c LEFT OUTER JOIN c.article a WHERE a.id IN :articles ORDER BY a.id ASC"; $query = $this->entityManager->createQuery($d

假设我有两个对象
article
comment
。我想做的是获取所有注释,article.id位于(1,2,3,4)中。实现这一目标的最佳方式是什么?我是被迫使用JOIN吗?现在我有这样的东西

dql = "SELECT c FROM Comment c LEFT OUTER JOIN c.article a WHERE a.id IN :articles ORDER BY a.id ASC";
$query = $this->entityManager->createQuery($dql);
$query->setParameter("articles", array(1,2,3,4));
我还没有测试过这个查询,但我相信类似的东西应该会起作用,但是在文章中编写类似c.article的东西(无连接)会很不错

从注释c中选择c,其中c.article位于(:articles)
$query->setParameter('articles',数组(1,2,3,4));

是的,关于“)”的语法错误:)我想问题是它将:articles改为“(1,2,3,4”)而不是(“1”、“2”、“3”、“4”)。我只是使用了内爆函数,但我想避免它,我只是重复检查了一下,这样就行了。我想你忘记了DQL查询中的括号:你需要在(:articles)中使用
,而不是:articles中的
,你在:articles中放了什么?只是一个像$array=(1,2,3,4)这样的数组?哦,我忘了提到我使用的是2.2;如果可以的话,你应该试一试!