Symfony2 Twig Получить общее количество для дочерней сущности
Существуют следующие объекты: Ферма, Сарай и Животные. Ферма может иметь много сараев, а сарай - много животных.
При отображении фермы в шаблоне TWIG также должно быть указано количество животных.
Каков наилучший способ сделать это?
Я создал расширение TWIG, которое позволяет мне легко показывать количество сараев.
public function totalFieldFilter($data, $getField='getTotal') {
$total = count($data->$getField());
return $total;
}
В моем шаблоне я использовал бы {{farm | totalField ('getBarns')}}, я мог бы легко расширить это, чтобы написать другую пользовательскую функцию, например так:
public function totalFieldFilter($farm) {
$total = 0;
foreach($farm->getBarns() AS $barn) {
$total += count($barn->getAniamls());
}
return $total;
}
Хотя это будет работать, есть ли лучший способ и можно ли сделать его более общим? Что если бы я хотел посчитать ноги на животных? Или сколько дверей у сарая, я бы каждый раз писал собственное расширение TWIG.