48

サービスを作成した場合、twig.extensionを作成せずに、twigからサービスにアクセスする方法はありますか?

4

2 に答える 2

121

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でサービスを宣言する必要があります。次に例を示します。

        App \ Service \ NavigationHelper:
        引数:
            foo:bar

次に、Twigで使用するサービスを宣言できます。これを実現するには、packages/twig.yamlにあるYamlファイルの「globals」セクションに変数として追加する必要があります。

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

これで、Mun Mun Dasが最後のコードスニペットで提案したように、テンプレートのサービスメソッドを使用できます。

于 2021-06-04T08:44:21.917 に答える