【问题标题】:PHP using Doctrine Criteria obj, no groupBy functionPHP 使用 Doctrine Criteria obj,没有 groupBy 函数
【发布时间】:2016-02-11 12:04:24
【问题描述】:

the Doctrine 2 Criteria class里面好像没有groupBy方法。如何向我的Criteria 对象添加一个?

【问题讨论】:

  • 你写了什么代码?您在使用查询生成器吗?如果是,则存在方法 'groupBy('field_name')'。
  • 你想groupBy还是orderBy
  • 我想GroupBy。我可能会尝试使用 Doctrine\DBAL\Query\QueryBuilder ...(感谢 Wilt 的编辑)

标签: php sql symfony doctrine-orm


【解决方案1】:

我认为您可以使用expr() 方法并从那里访问the GroupBy expression class。我认为groupBy 应该可以像往常一样通过这种方法访问:

/** @var \Doctrine\Common\Collections\Criteria $criteria */
$criteria->expr()->groupBy( ... your condition ... );

就像您在 QueryBuilder 实例中所做的那样:

/** @var \Doctrine\DBAL\Query\QueryBuilder $queryBuilder */
$queryBuilder->expr()->groupBy( ... your condition ... );

【讨论】:

  • 好像找不到groupBy(),说函数不存在?
  • 这是我得到的确切错误(“消息”:“尝试调用类 \"Doctrine\\Common\\Collections\\ExpressionBuilder\" 的名为 \"groupBy\" 的未定义方法。 ",)
  • @JosephAstrahan 我不确定这里发生了什么。我也找不到。这里all the avaiable methods in that ExpressionBuilder。不确定 API 是否更改或我之前犯了一个错误。由于答案被接受并赞成,我几乎希望它是第一个。
【解决方案2】:

groupBy 方法可用于 QueryBuilder 类:

Doctrine\DBAL\Query\QueryBuilder

【讨论】:

  • 这在处理标准对象时没有多大帮助。
猜你喜欢
  • 2014-07-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-17
  • 1970-01-01
相关资源
最近更新 更多