我很生气,因为一个大的问题在各个方向都有一点点。
她将使用几个表:
此查询的目的是能够返回包含以下内容的列表:
具有下载次数的不同现有包,在一段时间内,对于下载次数具有给定订单(ASC或DESC),并且所有这些取决于ID表已作为参数传递的用户类型。
所以,我:
包:
用户类型:
用户:
TypeUtilisateur和Paquet之间的众多关系:
和PackageDDLExternal:
所以我已经尝试创建这个查询,但一方面(在添加顺序的级别)似乎存在语法错误以及其他似乎阻止的事情......
public function getPackagesDDLBetween($debut, $fin,$typesUser,$ordre)
{
$qb = $this->createQueryBuilder('p');
$queryBuilder = $qb
->select("pa.titre, count(p.package)")
->join("p.package","pa")
->join("p.user","u")
->where("p.date between :debut and :fin")
->andWhere($qb->expr()->in("u.typeUser", $typesUser[0]))
->groupBy("pa.titre")
->orderBy("count(p.package) :ordre")
->setParameter('debut',$debut)
->setParameter('fin',$fin)
->setParameter('ordre', $ordre);
return $queryBuilder->getQuery()->getResult();
}
使用$ order,我收到此错误:
[语法错误]第0行,第213行:错误:预期的已知函数,得到'计数'
但没有它,我的结果就是空的
有人可以帮帮我吗?
编辑:查询几乎是好的。问题仍然存在于:
->andWhere($qb->expr()->in("u.typeUser", $typesUser))
我的$ tabUser值得这样:
使用别名:
->select("pa.titre, count(p.package) as total")
按别名排序:
->orderBy("total", $ordre)