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.

Ответы на вопрос(2)

Ваш ответ на вопрос