symfony 3.4 上的网站
有2张桌子:
和类别
以便显示每个产品类别中的产品数量
我编写了以下 DQL 查询:
SELECT a.id, a.category, a.enabled, COUNT(b.id) as prcnt
FROM AppBundle:Category a
JOIN AppBundle:Product b WITH a.id = b.category
WHERE a.enabled = :enabled
和调试输出:
array:1 [▼
0 => array:4 [▼
"id" => 1
"category" => "Фантастика"
"enabled" => true
"prcnt" => "6"
]
]
如您所见,只找到了 1 个类别,此外,他数错了 COUNT,在“奇幻”类别中有 4 个产品,他将所有产品都统计了 - 6 个。
我的 DQL 查询中的错误在哪里?为什么输出中只有 1 个类别?编写此 DQL 查询的正确方法是什么?为什么在 DQL 中引入 WITH 而不是 ON ?
一般来说,根据 symfony 的最佳实践,是编写 DQL 查询还是使用 createQueryBuilder 收集器更好?
需要分组以显示特定类别的结果。在这种情况下: