【发布时间】:2019-08-19 10:12:34
【问题描述】:
所以我已经看到很多关于我的问题的主题(每组最大的数),但似乎我无法让它与 queryBuilder 一起使用! (例如:post)
我正在运行 symfony 4.2.2
实体
------------- -------------
News Taxonomy
------------- -------------
id id
title name
category (ManyToOne Taxonomy) value
status (ManyToOne Taxonomy)
publication_date
Category 可以采用以下值:tech / sports / games .. 等等。
Status 可以采用以下值:draft / schedule / published .
我想要什么
在我使用 queryBuilder 的 NewsRepository 中,我想返回 每个类别的最新 发布新闻。
我最终做了什么
return $this->createQueryBuilder('a')
->select('n news', 'n.publicationDate pubDate')
->leftJoin('n.category', 'c')
->addSelect('c.value category')
->leftJoin('n.status', 's')
->addSelect('s.value status')
->andWhere('s.value = :st')
->setParameter('st', Taxonomy::WORKFLOW_PUBLISHED)
->orderBy('n.category, n.datePublication', 'DESC')
->getQuery()
->getResult();
Taxonomy::WORKFLOW_PUBLISHED 是一个类常量存储:'published'
然后在服务中,我只是迭代前一个方法返回的结果并提取每个类别的最新新闻。
我不喜欢这个临时解决方案,所以如果有人可以帮助我使用 queryBuilder,那就太好了!
+ 附加信息
我尝试在类别上使用 groupby,但它没有返回最新值。
如果可能的话,我也在寻找好的性能。
【问题讨论】:
标签: symfony doctrine greatest-n-per-group query-builder