是 Symfony2 控制器中可用的 Twig 模板的全局变量



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 全局变量中(例如,通过您的捆绑扩展类),而不是试图做相反的事情。

相关内容

  • 没有找到相关文章

最新更新