Twig 从symfony 4中的细枝模板调用服务

Twig 从symfony 4中的细枝模板调用服务,twig,symfony4,Twig,Symfony4,我想知道如何在Symfony 4上直接从twig模板调用服务。我在每一个动作中都使用它,如下所示: public function indexAction(TranslatorInterface $translator, NavigationGenerator $navigationGenerator) { return $this->render('index/index.html.twig', [ 'navigationItems'=&

我想知道如何在Symfony 4上直接从twig模板调用服务。我在每一个动作中都使用它,如下所示:

public function indexAction(TranslatorInterface $translator, NavigationGenerator $navigationGenerator)
    {

        return $this->render('index/index.html.twig', [
            'navigationItems'=>$navigationGenerator->getNavigation(self::class)
        ]);
    }
在模板中,我称之为:

{% for navigationItem in navigationItems.topNavigation['left'] %}
    <a href="{{ navigationItem.route }}">{{ navigationItem.label }}</a>
{% endfor %}

在Symfony 4中有没有提示如何执行此操作?不再有config.yml了

您仍然可以定义twig全局变量-它们将与
config/packages/twig.yaml
中的twig配置的其余部分一起使用


另一个选择,也许更好的地方是一个。定义函数(或过滤器)的服务与控制器一样是服务,因此您可以在构造函数中键入hint your
NavigationGenerator
以及您需要的任何其他内容,以便在从Twig调用的函数中使用。

实际上,我将使用服务解决方案,但是细枝函数似乎很有趣,将在未来的项目中使用它
{ NavigationGenerator.getNavigation(ControllerName) }