繁体   English   中英

如何在Twig过滤器中使用变量“替换”

[英]How to use variables in Twig filter 'replace'

从形式的PHP移交数组

$repl_arr = array('serach-string1' => 'replace1', ...) 

到Twig模板,我想通过类似于以下内容的替换过滤器替换Twig变量中的字符串:

{{ block | replace({ repl_arr }) }}

那不起作用,也不像

{% for key,item in repla_arr %}
  {% set var = block | replace({ key : item }) %}
{% endfor %}

做。 怎么了 如何运作?

您要么传递整个数组,要么循环替换。

但是在循环替换时,您需要将keyvalue包装在括号中以强制插入

{% set replaces = {
    '{site}'     : '{stackoverflow}',
    '{date}'  : "NOW"|date('d-m-Y'),
} %}

{% set haystack = '{site} foobar {site} {date} bar' %}


{{ haystack | replace(replaces) }}

{% set output = haystack %}
{% for key, value in replaces %}
    {% set output = output|replace({(key) : (value),}) %}
{% endfor %} 
{{ output }}

小提琴

暂无
暂无

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

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