Symfony 3 - 主义 - 大问题的困难

问题描述 投票:2回答:1

我很生气,因为一个大的问题在各个方向都有一点点。

她将使用几个表:

  • 用户
  • 用户类型
  • PackageDDLExternal(使用我添加了日期属性的外键User.id和Package.id)

此查询的目的是能够返回包含以下内容的列表:

具有下载次数的不同现有包,在一段时间内,对于下载次数具有给定订单(ASC或DESC),并且所有这些取决于ID表已作为参数传递的用户类型。

所以,我:

包:

enter image description here

用户类型:

enter image description here

用户:

enter image description here

TypeUtilisateur和Paquet之间的众多关系:

enter image description here

和PackageDDLExternal:

enter image description here

所以我已经尝试创建这个查询,但一方面(在添加顺序的级别)似乎存在语法错误以及其他似乎阻止的事情......

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值得这样:

enter image description here

php symfony count doctrine
1个回答
3
投票

使用别名:

->select("pa.titre, count(p.package) as total")

按别名排序:

->orderBy("total", $ordre)
© www.soinside.com 2019 - 2024. All rights reserved.