如何在.twig语法中使用变量

时间:2017-05-18 10:34:20

标签: php twig slim twig-extension

我在树枝模板中干。我想知道你是否可以在树枝的{{notation}}中访问变量。

例如:

{% if page.lang == 'en' %}
   // do something 
   {{ content_en }}
{% endif %}
{% if page.lang == 'es' %}
    // hacer algo 
    {{ content_es }}
{% endif %}

我尝试了其他一些方法。但是有可能(以某种方式)组合变量并做这样的事情:

// Php example
$var = 'content_';
$var .= page.lang;
// Output would be 'content_en';

但是对于Twig来说呢?

// Something like 
{{ content_ + page.lang }}

使其更清晰。我想访问正确的变量。

$content_en = 'this is just some content';
$content_es ='Alguna información';
$var = 'content_';
$var .= 'en';

$key = ${$var};
// Output is 'this is just some content'
echo $key;

2 个答案:

答案 0 :(得分:0)

如果要连接输出,则需要使用~

{{ 'content_' ~ page.lang }}

如果要调用动态变量,则需要使用attribute

{{ attribute(_context, 'content_' ~ page.lang) }}

_context是twig中的一个特殊变量,它包含您传递给模板的所有变量

答案 1 :(得分:0)

@Darabee。

你是对的,语法是:

{{ attribute(_context, 'content_' ~ page.lang) }}

但是我怎么注意到如果有一个数组并且你使用'。'而不是下划线' _'它不会起作用。

在我的情况下,我有一个多阵列。这就是问题所在。

page['city']['content_en'].
or page.city.content_en