У меня есть два объекта, Class
и Student
. Один Class
может иметь несколько Student
s (oneToMany):Как получить количество строк связанных объектов?
# YAML notation for Entity 'Class'
...
oneToMany:
students:
targetEntity: MyBundle\Entity\Student
mappedBy: class
Для получения всех Class
эсов, я пишу свой собственный запрос, как это:
SELECT c
FROM MyBundle:Class c
WHERE c.whatever = :parameter
ORDER BY c.id DESC
Теперь я пытаюсь принести список от Class
es, заказанный (DESC) по количеству связанных Student
s. Чтобы результат выглядел так:
Class.id Class.count(Student)
-------- --------------------
3 109
1 81
4 58
2 21
Как туда попасть? Я пытался что-то вроде этого несколько:
SELECT
c,
COUNT(c.students) AS students
FROM MyBundle:Class c
WHERE c.whatever = :param
GROUP BY c.id
ORDER BY students DESC
(Примечание: я реализовать функцию DoctrineExtensions' Date)
Но я получаю сообщение об ошибке:
[Semantical Error] line 0, col 26 near 'students)': Error: Invalid PathExpression. StateFieldPathExpression or SingleValuedAssociationField expected.
Попробуйте добавить 'GROUP BY c.id' в ваш запрос. –
Я сделал, все тот же сообщение об ошибке. –