【发布时间】:2014-06-27 14:53:11
【问题描述】:
存在以下实体,农场、谷仓和动物。一个农场可以有很多谷仓,一个谷仓可以有很多动物。
在 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 扩展。
【问题讨论】: