在Twig中将变量转换为字符串

Meu*_*les 8 symfony twig

我在Twig中翻译字符串时遇到了麻烦.我正在为多语种网店建立一个主题.

用户可以创建USP(唯一销售点).问题是当你有不同的语言时它不会翻译.

所以在模板中就像这样调用usp {{ theme.usp }} .结果就是"免费送货".

要翻译系统中的字符串,您必须使用{{ 'Free shipping' | t }}过滤器.

有没有办法{{ theme.usp }}翻译.我认为这会很有用,但我不知道如何将其合并.如何在twig中连接字符串

我做的是:

{% set usp = {{ theme.usp }} %}
{{ usp | t }}
Run Code Online (Sandbox Code Playgroud)

这样做会给我一个错误,因为{{ theme.usp }}它必须介于两者之间''.这样做并没有给我带来'Free shipping'结果,但是'theme.usp'.

有人建议吗?

paz*_*ulx 10

尝试:

{{ theme.usp|trans }}
Run Code Online (Sandbox Code Playgroud)

或者必须在t那时过滤掉

{{ theme.usp|t  }}
Run Code Online (Sandbox Code Playgroud)


for*_*erg 6

简单的方法是使用一个过滤器(最后是PHP函数),它只返回PHP文档中的字符串.

例如,我在选择(SELECT/OPTION)表单类型中显式设置值时遇到问题,因为它需要一个字符串,但我得到一个int作为值.我只是这样做:

{{ form_widget(form.scope, {'value': scope|trim}) }}
Run Code Online (Sandbox Code Playgroud)

scope是int,但trim(和其他PHP函数,这里作为Twig过滤器)自动使它成为一个字符串.是的,它是Symfony2中的另一个缺失的功能,顺便说一句.