[英]symfony2: how to access service from template
如果我创建了一个服务,有没有办法从 twig 访问它,而无需创建 twig.extension?
您可以在 config.yml 中为服务设置一个config.yml
全局变量,例如
#app/config/config.yml
twig:
globals:
your_service: "@your_service"
在您的template.html.twig
文件中,您可以这样调用您的服务:
{{ your_service.someMethod(twig_variable) }}
看这里。
要在 Symfony 5 中完成此操作,首先您必须在 services.yaml 中声明服务,例如:
App\Service\NavigationHelper: arguments: foo: bar
然后您可以在 Twig 中声明该服务以供使用。 为此,您必须将其作为变量添加到位于 packages/twig.yaml 中的 Yaml 文件的“globals”部分:
globals:
navHelper: '@App\Service\NavigationHelper'
现在您可以使用模板中的服务方法,正如 Mun Mun Das 在他的最后一个代码片段中所建议的那样。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.