繁体   English   中英

symfony2:如何从模板访问服务

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM