Twig模板的全局变量可以在Symfony2应用程序的config.yml中定义,如下所示:
twig:
globals:
var_name: var_value
因此,在每个 Twig 模板中,变量可以按如下方式使用:
{{var_name}}
将显示
var_value
你知道在 Symfony2 控制器中获取全局变量值的方法吗?
似乎没有办法获取特定值。但是你可以从 twig 服务中获取完整的全局数组,然后获取它的偏移量。
$twig = $this->container->get('twig');
$globals = $twig->getGlobals();
echo $globals['var_name'];
正确的做法是遵循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画了一个可能的方法!
我不清楚您是要访问控制器中的 twig var,还是只是从配置中访问全局变量。以下是从配置文件访问全局变量的方法...
您可以将该值放在配置的参数部分中。
parameters:
var_name: some_value
现在您可以从控制器访问它...
$value = $this->container->getParameter('var_name');
您最好使用捆绑配置或 DIC 参数作为您的值,然后将其添加到 twig 全局变量中(例如,通过您的捆绑扩展类),而不是试图做相反的事情。