在我的控制器中,我设置了以下变量并将它们传递给 Twig 模板:
$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 %}
在这种情况下,$fields 定义为:
Array
(
[0] => Array
(
[name] => id
[display] => Id
)
[1] => Array
(
[name] => name
[display] => Name
)
)
$data 是一个 phpactiverecord 对象的数组。
如上所述,row[field.name] 没有任何输出。
以下是我更改 row[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 站点:您可以使用点 (.) 来访问变量的属性(PHP 对象的方法或属性,或 PHP 数组的项),或者所谓的“下标”语法 ([]) :
关于让它发挥作用的任何想法?