Php 使用Symfony 2在细枝模板中获取内核根目录

Php 使用Symfony 2在细枝模板中获取内核根目录,php,symfony,templates,kernel,twig,Php,Symfony,Templates,Kernel,Twig,我需要在我的小树枝模板中获取kernel.root\u dir,我找到了解决方案,但它不起作用。我得到了内核中不存在的方法的错误。GlobalVariables类方法getKernel()中的Realy不存在。所以,我如何才能得到根目录目录在树枝模板 (注意:不,我不能从控制器获取,也不能将其作为容器参数获取)我建议您在config.yml中添加一个全局变量: # app/config/config.yml twig: # ... globals: kernelR

我需要在我的小树枝模板中获取kernel.root\u dir,我找到了解决方案,但它不起作用。我得到了内核中不存在的方法的错误。GlobalVariables类方法getKernel()中的Realy不存在。所以,我如何才能得到根目录目录在树枝模板


(注意:不,我不能从控制器获取,也不能将其作为容器参数获取)

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

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

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

在较新的Symfony版本中,解决方案类似,但参数
kernel.root\u dir
已在版本中删除,而细枝的配置文件位于其他位置

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

细枝:
全球:
kernelProjectDir:“%kernel.project\u dir%”

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

是的,这是一个不错的解决方案,但我不想将我的应用程序与配置绑定。你也可以使用扩展创建全局应用程序。但是这并没有配置文件那么友好。好的,如果是一个合适的方式,我会接受你的答案。谢谢你的帮助请注意,现在必须引用
%kernel.root\u dir%
。谢谢,请编辑。下次自己编辑这些更改时不要犹豫:)干杯