使用 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 }}
。
我需要在我的 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 }}
。