对象方法中的twig变量

时间:2014-09-10 12:49:10

标签: symfony twig

嗨,我是Symfony和twig的新手。我试图将字符串变量作为方法的名称传递。让我们看看这个例子:

{% for user in pagination %}
    <tr {% if loop.index is odd %}class="color"{% endif %}>
        {% for value in columns  %}
            <td>{{ user.value }}</td>
        {% endfor %}
    </tr>
{% endfor %}

此代码导致错误,未定义对象的方法值 变量列包含列数组(id,name,email ...)
请有人能告诉我正确的语法。
类似的东西:

<td>{{article[value]}}</td>
<td>{{article.{{value}}}}</td>

非常感谢!

1 个答案:

答案 0 :(得分:0)

当您在Twig变量上引用对象属性时,Twig引擎会尝试以多种方式访问​​PHP对象上的该属性。

假设您的user个对象是Your\Bundle\Entity\User类的实例。 TWIG将尝试通过尝试访问以下内容来解决user.value(我认为按此顺序)

  • Your\Bundle\Entity\User::value()
  • Your\Bundle\Entity\User::getValue()
  • Your\Bundle\Entity\User::$value

在所有情况下,这些方法/属性必须为public才能让Twig访问它们。

简而言之,我认为这不是模板中的问题,而是基础对象的问题。