使用 Symfony 2 在 Twig 模板中获取内核根目录

Get kernel root dir in Twig template with Symfony 2

我需要在我的 twig 模板中获取 kernel.root_dir,我找到了解决方案 here, but it does not work. I get error about non existing method Kernel in this class。实际上在 GlobalVariables class 方法 getKernel() 中不存在。那么我如何在树枝模板中获得 root_dir 。

(P.S。不,我无法从控制器获取它,不,我无法将其作为容器参数获取)

我建议您在 config.yml:

中添加一个全局变量
# app/config/config.yml
twig:
    # ...
    globals:
        kernelRootDir: "%kernel.root_dir%"

然后,在您的视图中使用 {{ kernelRootDir }}

在较新的 Symfony 版本中,解决方案类似,但参数 kernel.root_dir 已在版本 5.0 中删除,twig 的配置文件位于其他地方。

现在您可以使用 kernel.project_dir 参数,它解析为项目的根目录(而不是内核的根目录)。这通常是您的 composer.json 所在的目录。

twig:
    globals:
        kernelProjectDir: '%kernel.project_dir%'

然后在您的模板中使用 {{ kernelProjectDir }}