如何使用 symfony2 在 Twig 中设置全局变量

use*_*263 4 symfony

我正在使用 symfony 2.8 和 twig 1.2,我想知道是否有办法为 twig 模板设置全局变量,如果有一个中心位置,我不想进入每个 twig 文件并更改值我可以设置变量值并在任何树枝文件中使用它,而不管它们在哪个目录中都很好。

截至目前,我正在parameters.yml文件中定义关键值

parameters:
    client_name: 'naruto uzumaki'
Run Code Online (Sandbox Code Playgroud)

然后在控制器里面我有

<?php
use Symfony\Bundle\FrameworkBundle\Controller\Controller;

class MyController extends Controller
{
    public function editAction()
    {
        $var = $this->container->getParameter('client_name');
        return $this->render("UserBundle:edit:edit.html.twig", array('var' => $var));
    }
}
Run Code Online (Sandbox Code Playgroud)

然后将它展示在树枝中,

<h1>Hello, {{ var }}</h1>
Run Code Online (Sandbox Code Playgroud)

我想避免在控制器中调用服务容器并直接访问client_name树枝文件中的值,任何帮助将不胜感激

Als*_*ian 5

是的,您可以,在您的配置文件中:

# app/config/config.yml
twig:
    globals:
        my_global_variable: '%client_name%'
Run Code Online (Sandbox Code Playgroud)

然后在 Twig 中:

{{ my_global_variable }}
Run Code Online (Sandbox Code Playgroud)

不要害怕在谷歌搜索解决方案,“树枝全局变量”的第一个结果是:

http://symfony.com/doc/current/cookbook/templating/global_variables.html