Symfony2 Twig Obter Contagem Total para Entidade Filha

Existem as seguintes entidades, Fazenda, Celeiro e Animais. Uma fazenda pode ter muitos celeiros e um celeiro muitos animais.

Ao exibir uma Fazenda em um modelo TWIG, o número de Animais também deve ser mostrado.

Qual é a melhor maneira de fazer isso?

Criei uma extensão TWIG que me permite mostrar facilmente o número de celeiros.

public function totalFieldFilter($data, $getField='getTotal') {
    $total = count($data->$getField());
    return $total;
}

No meu modelo eu usaria {{farm | totalField ('getBarns')}}, eu poderia estender isso facilmente para escrever outra função personalizada como:

public function totalFieldFilter($farm) {
    $total = 0;
    foreach($farm->getBarns() AS $barn) {
        $total += count($barn->getAniamls());
    }
    return $total;
}

Embora isso funcione, existe uma maneira melhor e pode ser tornada mais genérica? E se eu quisesse contar Pernas em Animais? Ou quantas portas um celeiro tem, eu teria que escrever uma extensão TWIG personalizada a cada vez.

questionAnswers(2)

yourAnswerToTheQuestion