繁体   English   中英

PHP&Twig:无法访问模板中的变量

[英]PHP & Twig : Trouble accessing variables in template

在我的控制器中,我设置以下变量并将它们传递给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数组的项),或所谓的“下标”语法([]) :

有什么想法让这个工作?

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

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

它甚至在您链接到页面上提到...

如果要获取变量的动态属性,请改用属性函数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM