查询计数和计数fetchArray在Doctrine和Symfony 1.4中不相同

时间:2014-11-26 02:02:35

标签: php doctrine symfony-1.4

我有一个错误。当我计算查询方法并计算fetchArray方法的结果但它们的结果不相同时。因此,在Symfony 1.4中获取后端生成器中的查询结果时出现错误。

我在下面使用的查询:

    $alias = 's';
    $query = VtArticleTable::getInstance()->createQuery('va');
    $query->innerJoin("va.sfGuardUserCreatedBy s");
    $query->innerJoin("va.ArticleCategory ac");
    $query->select("$alias.id AS user_id,  COALESCE($alias.phone, ' ') AS phone_user ,       COALESCE($alias.email_address, ' ') AS email_user , COALESCE($alias.first_name, ' ') AS first_name_user, "
            . "COALESCE($alias.last_name, ' ') AS last_name_user, $alias.username AS user_name,  COALESCE(ac.name, ' ') AS category_name,"
            . " va.type AS article_type, COUNT(*) AS total_article ");

    $query->groupBy("ac.id, va.type, s.username");
    $query->where('ac.id IS NOT NULL');
    $query->andWhere('va.id IS NOT NULL');
    $query->andWhere('s.id IS NOT NULL');
    $query->orderBy('ac.updated_at DESC');

    $query->count() = 61
    count($query->fetchArray()) = 51

PS:VtArticle和VtArticleCategory有很多关系。

如何在生成器中使用查询获得正确的结果?

1 个答案:

答案 0 :(得分:1)

你想在控制器里面算一下吗? 无论如何,快速查看我注意到你在count()方法之前错过了execute()方法。

所以你应该打印 $查询 - >执行() - >计数()