php - 使用 Doctrine 的顺序连接表
问题描述
我用学说写了一个查询,我在其中加入了水果和维生素表。
我已经按名称 ASC 对维生素进行了分类,但我需要对连接表做同样的事情。
我试过了
addOrderBy()
,但没有运气..
注:“c”是维生素表。
一切都按原样退回,除了水果无序退回。
我的代码:
$queryBuilder = $this->createQueryBuilder('c')
->select('c', 'ct.name AS fruitName', 'ct.id AS fruitId')
->join('App\Entity\Fruits', 'ct', Expr\Join::WITH, 'ct.id = c.fruitName')
->orderBy('c.name');
$fruits = $queryBuilder->getQuery()->getResult();
$structure = [];
foreach ($fruits as $fruit) {
$structure[$fruit['fruitName']][] = $fruit[0];
}
return $structure;
解决方案
尝试其中之一:
选项1:
$qb->orderBy('c.name ASC, ct.name ASC');
选项 2:
$qb->addOrderBy('c.name', 'ASC')
->addOrderBy('ct.name', 'ASC')
推荐阅读
- php - 我想使用高级自定义字段从前端上传图像
- python - 如何绕过 docker 中的 python 应用程序中的 pywin32 依赖项?
- c++ - 为什么 std::map 仅通过左值引用采用自定义比较器?
- c++ - 如何在 .clang-tidy 配置文件中注释一行?
- c# - 在dll中查找路径
- ms-access - 将 GotoRecord 方法更改为 RecordsetClone
- dynamic - 如何在 nuxt 中创建动态且可互换的嵌套路由?
- apache - MIME 类型与 TYPO3 压缩的 CSS 和 JS 资源冲突
- html - 如何将链接放在“溢出:自动;” 悬停时的区域?
- javascript - 如何在 JavaScript 中处理变量赋值