如何自动注入变量到所有模板

编辑本页

如何自动注入变量到所有模板

Twig允许您自动向所有模板中注入一个或多个变量。类中定义了这些全局变量twig.globals在主Twig配置文件中的选项:

  • YAML
  • XML
  • PHP
1 2 3 4 5
#配置/包/ twig.yaml枝:#……全局变量:ga_tracking:“UA-xxxxx-x”

现在,变量ga_tracking在所有Twig模板中都可用,所以你可以使用它,而不必显式地从呈现模板的控制器或服务中传递它:

1
<p>谷歌跟踪码为:{{ga_tracking}}p>

引用服务

除了静态值,Twig全局变量还可以引用服务容器.主要缺点是这些服务不是惰性加载的。换句话说,只要加载了Twig,您的服务就被实例化了,即使您从未使用过这个全局变量。

要将服务定义为全局Twig变量,请在服务ID字符串前加上@字符,这是通常的语法引用容器参数中的服务

  • YAML
  • XML
  • PHP
1 2 3 4 5 6
#配置/包/ twig.yaml枝:#……全局变量:该值是服务的iduuid:“发电机@App \ \ UuidGenerator”

现在您可以使用uuid变量在任何Twig模板中访问UuidGenerator服务:

1
UUID:{{uuid。生成}}
此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。
ob娱乐下载Symfony 6.2支持通过苏禄人
ob娱乐下载Symfony 6.2支持通过Les-Tilleuls.coop