2014-02-07 48 views
0

我有一個實體有三個字段(id,user,location)。 我想按位置顯示用戶數量。使用Count和Group By與Doctrine2,Symfony2和AliDataBundle

隨着SQL這很容易,但我有一個錯誤,當我想用​​DQL和AliDatatableBundle

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

「mycount的」不指向一個類。

我已經看到AliDataBundle可以使用別名。它應該有效。

任何想法?

+0

你有沒有嘗試使用*的計數(a.id)istead? – Pawel

回答

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(); 
}