从PHP转换twig中的代码

时间:2017-08-23 10:43:29

标签: php twig

我试图将我的模板从普通的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 %}

但是,这不起作用。你能帮忙吗?我在这做错了什么?

2 个答案:

答案 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功能(因为你可以直接设置它。)