2012-04-23 62 views
5

在我的控制,我设置以下变量,并将它们传递给嫩枝模板:PHP和嫩枝:无法存取变量在模板

$data = $model::all(); // returns object [phpactiverecord] 
$fields = getFields(); // returns associative array 

在我的模板,我试图像这样访问他们:

{% block rows %} 
    {% for row in data %} 
      <tr> 
    {% for field in fields %} 
       <td>{{ row[field.name] }}</td> 
    {% endfor %} 
      </tr> 
    {% endfor %} 
{% endblock %} 

在这种情况下,$字段的定义为:

​​3210

和$数据是阵列phpactiverecord对象。


如上所述,没有输出行[field.name]。

下面是结果我看看,如果我改变行[field.name]:

row.name  -> outputs Value I would expect from row[field.name] 
field.name  -> outputs "name" 
row['name']  -> outputs nothing 
row[field.name] -> outputs nothing 

按照Twig site:你可以用一个点来访问变量的属性((。) PHP对象的方法或属性,或者PHP数组的项),或者所谓的“下标”语法([]):

任何关于使其工作的想法?

回答

4

如果您使用1.2或更高版本,尝试attribute功能

{{ attribute(row, field.name) }} 

它甚至在page you linked to提到...

如果你想获得一个动态属性变量,而是使用属性函数。

+0

修复它 - 谢谢! – sonicradish 2012-04-24 17:50:49