48

如果我创建了一项服务,是否可以从 twig 访问它,而无需创建 twig.extension?

4

2 回答 2

121

您可以将服务设置为 twig 全局变量config.yml,例如

#app/config/config.yml
twig:
    globals:
        your_service: "@your_service"

在您的template.html.twig文件中,您可以通过以下方式调用您的服务:

{{ your_service.someMethod(twig_variable) }}

这里

于 2012-11-06T07:01:18.083 回答
0

要在 Symfony 5 中完成这项工作,首先您必须在 services.yaml 中声明服务,例如:

        应用\服务\导航助手:
        论据:
            富:酒吧

然后,您可以声明该服务以在 Twig 中使用。为此,您必须将其作为变量添加到位于 packages/twig.yaml 中的 Yaml 文件的“全局”部分:

  globals:
    navHelper: '@App\Service\NavigationHelper'

现在您可以使用模板中的服务方法,正如 Mun Mun Das 在他上一个代码片段中所建议的那样。

于 2021-06-04T08:44:21.917 回答