我已经就此发现了不少讨论,但我似乎无法使其发挥作用。我以这种方式在php中定义变量
$theme_name = 'layout1';
所以我尝试了以下方法,让'layout1'在我的CMS模板中使用{{theme.name}}显示以下每一个,一次一个,但没有一个工作。带有$ twig的那个给了未定义的变量'twig'。
$theme['name'] = $theme_name;
$app["twig"]->addGlobal("name", $theme_name);
$GLOBALS['theme'] = 'layout1';
$twig->addGlobal('themename', 'layout1');
那我哪里错了?
答案 0 :(得分:1)
Twig文档涵盖了这一点。
全局变量与任何其他模板变量一样,除了它在所有模板和宏中都可用:
$twig = new Twig_Environment($loader);
$twig->addGlobal('text', new Text());
然后,您可以在模板中的任何位置使用文本变量:1
{{ text.lipsum(40) }}
答案 1 :(得分:1)
您还可以将整个数组添加到Twig:
$theme_name = 'layout1';
$somevar = 'blah';
$theme = array(
'name' => $theme_name,
'something' => $somevar
);
$twig = new Twig_Environment($loader);
$app["twig"]->addGlobal("theme", $theme);
在模板中,您可以输出此数组的命名元素:
{{ theme.name }}
{{ theme.something }}
HTH
答案 2 :(得分:0)
简单:
$twig->addGlobal('themename', $variation);
在您的模板文件中,您只需致电
{{themename}}