【问题标题】:Symfony doctrine repository order by countSymfony 学说存储库按计数排序
【发布时间】:2016-11-07 13:38:14
【问题描述】:

我有几张桌子,并得到它的结果。

$qb = $this->createQueryBuilder('a');
$qb->select("a, c, ac")
   ->leftJoin('a.categories', 'c')
   ->leftJoin('a.comments', 'ac')
   ->where('c.slug = :category')
   ->setParameter('category', $category)
   ->orderBy('a.name', 'ASC');
return $qb->getQuery();

我想要这个结果,按 cmets (ac) 计数排序。我该如何解决这个问题?

【问题讨论】:

  • ->addOrderBy('count(a.comments)', 'ASC'); ?
  • 我有一个错误。 QueryException: [Syntax Error] line 0, col 173: Error: Expected end of string, got '(' QueryException: SELECT a, c, ac FROM ArticleBundle\Entity\Article a LEFT JOIN a.categories c LEFT JOIN a.cmets ac WHERE c.slug = :category ORDER BY count(a.cmets) ASC
  • 文章和评论有 OneTomany 关系 /** * * @ORM\OneToMany(targetEntity="Comments", mappedBy="article") */ private $cmets;
  • 删除“;”在你最后一个 orderBy 之后,把我的线放好
  • 我得到了同样的错误:(

标签: php symfony doctrine repository


【解决方案1】:
$qb = $this->createQueryBuilder('a');
$qb->select("a, c, ac, count(a.comments) AS HIDDEN nbcomments")
   ->leftJoin('a.categories', 'c')
   ->leftJoin('a.comments', 'ac')
   ->where('c.slug = :category')
   ->setParameter('category', $category)
   ->orderBy('a.name', 'ASC')
   ->addOrderBy('nbcomments', 'ASC');
return $qb->getQuery();

【讨论】:

  • 我得到了同样的错误:QueryException: [Syntax Error] line 0, col 173: Error: Expected end of string, got '('
  • @MindaugasMG 你看过并尝试过这个更新的答案吗?
猜你喜欢
  • 2011-06-16
  • 1970-01-01
  • 2018-08-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-06
  • 1970-01-01
相关资源
最近更新 更多