如何在Twig模板中转义path()

时间:2017-01-14 11:22:46

标签: twig symfony twig-extension twig-filter

我的目标是呈现一个Twig模板,并通过API将结果HTML发送到Mailchimp发送。

我目前的流程:

1)创建一个Twig-Template email.html.twig

2)$html = $this->renderView('MyBundle:email.html.twig');

3)sendHtmlViaApi($html);

问题: 我需要一个URL来包含一个Mailchimp Merge Tag String,它必须是*|VARIABLE|*。我用{{ path('my_route', {variable : '*|VARIABLE|*'}) }}做到了。期望的结果:/myroute/*|VARIABLE|*。我得到的结果是:/myroute/*%7CVARIABLE%7C*

已尝试且失败的方法:

1)使用{% autoescape %}

2)|raw

3)Twig Extension with new url_decode从Symfony2 Twig stop escaping path

过滤

2 个答案:

答案 0 :(得分:0)

所以你希望Twig停止自动URL编码。

您可以将仅包含字母和下划线的占位符传递给path(),以便不会对其进行转义。然后你可以使用字符串Mailchimp期望的replace占位符:

{{ path('my_route', {variable : 'MAILCHIMP_VARIABLE'})|replace({
    'MAILCHIMP_VARIABLE': '*|VARIABLE|*'
}) }}

答案 1 :(得分:0)

感谢您的建议! 最后这是我自己的错...在mailchimp端设置中缺少其中一个合并标签,因此它无法用所需的值替换它。 傻傻的我!