{{ row[col.key] | col.filter }}
我在col.filter变量中有过滤器。我尝试创建了以下链接https://github.com/fabpot/Twig-extensions/pull/53/files中提到的eval过滤器,并尝试https://github.com/marcj/twig-apply_filter-bundle或调用
{{ row[col.key] | eval(col.filter) }}
或
{{ eval(row[col.key] , col.filter) }}
但它不起作用。
问题的演示就在这里,
答案 0 :(得分:1)
此时您无法执行此操作,但我建议您创建自己的twig方法或过滤器,以获取要作为参数应用的过滤器。
我建议你使用或从这个包中获取灵感:https://github.com/marcj/twig-apply_filter-bundle
答案 1 :(得分:1)
好的,这有点毛茸茸,但是如何使用template_from_string + include方法呢?有点难看,而且可能相当昂贵,但至少它应该有用。
{% set col, row = { key: 'x', filter: 'raw' }, { x: '<b>one</b>', y: '<b>two</b>' } %}
{{ include(template_from_string('{{ row[col.key]|' ~ col.filter ~ ' }}')) }}
...将输出:一个
虽然这......
{% set col, row = { key: 'x', filter: 'escape' }, { x: '<b>one</b>', y: '<b>two</b>' } %}
...
...将输出:&lt; b&gt;一个&lt; / b&gt;
答案 2 :(得分:0)
正如IRC所述,您可以采用另一种方法,并使用Format
界面将格式应用于您的元素:
这里有一个简单的POC https://gist.github.com/Lumbendil/d94109e91ceab7fae7e7
答案 3 :(得分:0)
以下是解决方案:
https://github.com/marcj/twig-apply_filter-bundle
这是一个Symfony软件包,可以提供您所需要的内容。你也可以在没有symfony的情况下使用它。