我试图将我的模板从普通的PHP转换为Twig代码,我不确定如何在代码中查看如何在Twig代码中编写以下示例。有人能指出我正确的方向吗?
我的以下PHP代码。
<?php } if ($body_font != '' ) {
$fontpre = $body_font;
$font = str_replace("+", " ", $fontpre); ?>
body {font-family:<?php echo $font ?>;}
<?php } ?>
我在树枝上尝试了一些事情。
{% if body_font != '' %}
{% set fontpre = 'body_font' %}
{% set font = fontpre|replace("+", " ") %}
body {font-family:{{ font }}; }
{% endif %}
但是,这不起作用。你能帮忙吗?我在这做错了什么?
答案 0 :(得分:2)
replace
过滤器与PHP函数str_replace
不同。它接受一个映射,其中键是应该被值替换的字符串:
{% set font = fontpre|replace({"+": " "}) %}
答案 1 :(得分:0)
问题在于,在您的twig代码中,您已使用字符串文字fontpre
初始化变量body_font
。在您的PHP代码中,$body_font
也是一个变量。
再次设置它实际上是没用的,你可以直接在你的php代码中使用那个变量(例如。$font = str_replace("+", " ", $body_font); ?>
),但除此之外;确保您的twig代码中也可以使用此特定变量,或使用引用正确字体系列名称的字符串文字。虽然在这种情况下你可以完全跳过replace
功能(因为你可以直接设置它。)