Twig 从symfony 4中的细枝模板调用服务
我想知道如何在Symfony 4上直接从twig模板调用服务。我在每一个动作中都使用它,如下所示: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'=&
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) }