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

时间:2015-03-05 07:44:46

标签: php symfony templates kernel twig

我需要在我的twig模板中获取kernel.root_dir,我找到了解决方案here,但它不起作用。我在this class中收到有关非现有方法内核的错误。真的在GlobalVariables类方法中getKernel()不存在。所以我如何在twig模板中获取root_dir。

(P.S。不,我不能把它变成控制器,而且我不能把它当作容器参数)

2 个答案:

答案 0 :(得分:12)

我建议你在config.yml中添加一个全局变量:

# app/config/config.yml
twig:
    # ...
    globals:
        kernelRootDir: "%kernel.root_dir%"

然后,在您的观看中使用{{ kernelRootDir }}

答案 1 :(得分:1)

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

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

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

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