我需要在我的twig模板中获取kernel.root_dir,我找到了解决方案here,但它不起作用。我在this class中收到有关非现有方法内核的错误。真的在GlobalVariables类方法中getKernel()不存在。所以我如何在twig模板中获取root_dir。
(P.S。不,我不能把它变成控制器,而且我不能把它当作容器参数)
答案 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 }}
。