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.