【问题标题】:Query count and count fetchArray not same in Doctrine and Symfony 1.4Doctrine 和 Symfony 1.4 中的查询计数和计数 fetchArray 不同
【发布时间】:2014-11-26 02:02:35
【问题描述】:

我有一个错误。当我计算查询方法并计算 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 有多对多的关系。

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

【问题讨论】:

    标签: php doctrine symfony-1.4


    【解决方案1】:

    您是否尝试在控制器内进行计数? 无论如何,快速浏览一下,我注意到您在 count() 方法之前错过了 execute() 方法。

    所以你应该打印 $query->execute()->count()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多