可以在 Symfony2 应用程序的 config.yml 内定义 Twig模板的全局变量如下所示:
twig:
globals:
var_name: var_value
因此,在每个Twig模板中,变量可以按如下方式使用:
{{var_name}}
将显示
var_value
您是否知道在Symfony2控制器中获取全局变量值的方法?
答案 0 :(得分:23)
似乎并不是一种获取特定价值的方法。但你可以从树枝服务中获得全部的全局变量,然后抓住它的偏移量。
$twig = $this->container->get('twig');
$globals = $twig->getGlobals();
echo $globals['var_name'];
答案 1 :(得分:4)
正确的做法是遵循Symfony's Cookbook中关于Twig全局变量的官方教程。实际上,应该定义一个可以在控制器中使用的全局变量,例如:
; app/config/parameters.ini
[parameters]
my_global_var: HiAll
然后将变量定义为Twig模板的全局
# app/config/config.yml
twig:
globals:
my_var: %my_global_var%
因此,{{my_var}}
将返回 HiAll ,但是应该在parameters.ini
文件中处理一次值。
所以,问题的答案是否定的!或者说,不是以有效的方式。 MDrollette绘制了一种可能的方式!
答案 2 :(得分:2)
我不清楚您是否想要访问控制器中的twig var,或者只是从配置中访问全局变量。以下是如何从配置文件中访问全局变量...
您可以将值放在配置的参数部分中。
parameters:
var_name: some_value
现在您可以从控制器访问它了......
$value = $this->container->getParameter('var_name');
答案 3 :(得分:2)
我认为你最好为你的值使用bundle配置或DIC参数,然后将它添加到twig globals(例如,通过你的bundle扩展类),而不是试图做相反的事情。