0
   $result = Doctrine_Core::getTable('Property')->createQuery('p')
                 ->select('min(p.article_id) as article_id')
                 ->where('p.name = ?', 'hotel_number')
                 ->innerJoin('p.Article a')
                 ->andWhere('a.is_active = ?', true)
                 ->groupby('p.string_value')->execute();

这应该返回一个以上的对象:

$articles = array();
foreach ($result as $temp) {

        $articles[] = $temp['article_id'];
    }
return $articles;

我不明白为什么如果我在 phppgadmin 中触发查询我得到 100 多个结果,这只会返回一个对象。我尝试了一些在其他方法中运行良好的其他查询,它们在这里也只返回一个:

有人有想法吗?我以前从未遇到过这种情况,无法解决这个问题-.-

4

2 回答 2

0

尝试这个:

->where('p.name = :name')
->andWhere('a.is_active = :active')
->setParameter('name', 'hotel_number')
->setParameter('active', true)
于 2013-08-01T15:32:15.820 回答
0

好的,伙计们,我解决了我的问题,它是一个带有别名的学说错误..我发现了这个关于谷歌搜索的信息。

学说将给出的别名存在问题

这是该问题的链接: www.doctrine-project.org 别名问题

对于我的问题,我的修复很简单,因为我只想获取与上述查询匹配的所有 ID。

这修复了它:$result->execute(array(), Doctrine::HYDRATE_SCALAR)

HYRATE_SCALAR 不返回任何对象数组.. 在这里查看教义文档:

HYDRATE_SCALAR 文档

希望我可以帮助解决这个问题的人。Thx 4 帮助家伙:)

于 2013-08-02T08:19:52.447 回答