使用Count和Group By与Doctrine2,Symfony2和AliDataBundle

时间:2014-02-07 05:48:12

标签: symfony datatable doctrine-orm

我有一个包含三个字段(id,user,location)的实体。 我想按位置显示用户数。

使用SQL它很容易,但是当我想使用DQL和AliDatatableBundle时出现错误

$qb = $this->createQueryBuilder('a')
->select("count(*) as myCount, a.location")->groupBy('a.location');
  

'myCount'不指向Class。

我已经看到AliDataBundle可以使用别名。它应该有效。

任何想法?

1 个答案:

答案 0 :(得分:0)

您可以在实体存储库中尝试这个:

public function getSth() {
    $query = 'your sql query here';
    $em = $this->getEntityManager();
    $connection = $em->getConnection();

    $stmt = $connection->prepare($query);
    $stmt->execute();

    return $stmt->fetchAll();
}

或者通过查询构建器:

public function getSth() {
    $qb = $this->createQueryBuilder();
    $qb->select('count(a.id)');
    $qb->from('YourBundleBundle:Entity','a');
    $qb->groupBy('a.location');
    $query = $qb->getQuery();

    return $query->->execute();
}