我有一个带有三个字段(ID,用户,位置)的实体。我想按位置显示用户数量。
使用sql,这很容易,但是当我想使用dql和alidatabablebundle
时,我会出错$qb = $this->createQueryBuilder('a')
->select("count(*) as myCount, a.location")->groupBy('a.location');
'mycount'没有指向一堂课。
我已经看到Alidatabundle可以使用别名。它应该有效。
有什么想法?
您可以在实体存储库中尝试此方法:
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();
}