如何将php变量传递给twig模板
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将php变量传递给twig模板相关的知识,希望对你有一定的参考价值。
我已经就此发现了不少讨论,但我似乎无法使其发挥作用。我用这种方式在php中定义变量
$theme_name = 'layout1';
所以我尝试了以下方法,使用{{theme.name}}使用{{theme.name}}在我的CMS模板中显示'layout1',每次一个,但是没有一个工作。带有$ twig的那个给了未定义的变量'twig'。
$theme['name'] = $theme_name;
$app["twig"]->addGlobal("name", $theme_name);
$GLOBALS['theme'] = 'layout1';
$twig->addGlobal('themename', 'layout1');
那我哪里错了?
答案
您还可以将整个数组添加到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
另一答案
Twig文档涵盖了这一点。
全局变量与任何其他模板变量一样,除了它在所有模板和宏中都可用:
$twig = new Twig_Environment($loader);
$twig->addGlobal('text', new Text());
然后,您可以在模板中的任何位置使用文本变量:1
{{ text.lipsum(40) }}
另一答案
就那么简单:
$twig->addGlobal('themename', $variation);
在你刚才打电话的模板文件中
{{themename}}
以上是关于如何将php变量传递给twig模板的主要内容,如果未能解决你的问题,请参考以下文章
markdown 将Gravity Forms作为变量传递给Twig / Timber