【发布时间】:2019-04-25 15:26:53
【问题描述】:
我很生气,因为一个很大的查询向各个方向发展。
她将使用几张桌子:
- 用户
- 包
- 用户类型
- PackageDDLExternal(带有外键 User.id 和 Package.id,我在其中添加了日期属性)
此查询的目的是能够返回一个包含以下内容的列表:
不同的现有软件包及其下载次数,在一段时间内,下载次数具有给定的顺序(ASC 或 DESC),所有这些都取决于 ID 表已传递为的用户类型参数。
所以,我已经:
帕奎特:
输入 Utilisateur :
用户:
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,我得到这个错误:
[语法错误] line 0, col 213: Error: Expected known function, got '计数'
但没有它,我的结果只是空
有人可以帮帮我吗?
编辑:查询几乎是好的。问题仍然存在:
->andWhere($qb->expr()->in("u.typeUser", $typesUser))
我的 $tabUser 值得这样做:
【问题讨论】:
标签: php symfony count doctrine