Php Twig关键字'services'的值始终为'true'`
我在Symfony中工作,试图将名为Php Twig关键字'services'的值始终为'true'`,php,symfony,twig,Php,Symfony,Twig,我在Symfony中工作,试图将名为$services的变量传递到我的小树枝模板中。当然,我也会使用相同的名称引用twig中的变量 $services = new ArrayCollection(); // Some array $this->render('template.html.twig', [ 'services' => $services ]); 然而,出于某种原因,服务始终是一个布尔值true。这不是我试图传递给它的ArrayCollection 我
$services
的变量传递到我的小树枝模板中。当然,我也会使用相同的名称引用twig中的变量
$services = new ArrayCollection(); // Some array
$this->render('template.html.twig', [
'services' => $services
]);
然而,出于某种原因,服务
始终是一个布尔值true
。这不是我试图传递给它的ArrayCollection
我已经检查了我的twig配置,查看是否有任何可以将自身分配为全局变量的内容,但所有内容都已签出,而且我似乎找不到任何关于
服务
是保留关键字的文档
FWIW,我将twig变量名称从services
重命名为foo
,以进行健全性检查,$services
变量的行为符合预期,因此它肯定与将变量分配给twig中的单词services
有关
我目前正在运行Twig 2.14.3
除了检查是否设置了任何全局变量外,还有没有其他方法可以尝试找到定义此变量的原因和位置?经过几个小时的故障排除,这似乎是一个相当愚蠢的答案 我检查:
- my
配置中的全局变量twig.yaml
- 确保没有将任何自定义细枝扩展绑定到
服务
- 检查所有绑定服务是否未创建任何名为
service
- 确保我没有将任何模板中的
服务设置为基本模板
{%set services=…%}
的模板,它包含在我的基本模板中
+我注意到@yivi的
debug:twig
,因为知道twig绑定了什么非常有用。正是这些信息让我意识到捆绑包绑定到的任何名称空间,并提供了一些额外的位置开始查找。无法重新创建。我和你在一起。可以很好地使用服务
细枝变量名。您的项目中一定是其他原因造成了这种情况。检查debug:twig
以查看是否为您的应用程序定义了任何全局或筛选器。嗯,奇怪。我运行了debug:twig
进行检查,但没有出现任何带有services
字样的内容。全局函数、函数或过滤器中的任何内容都没有引起我的注意。如果没有其他信息,似乎不可能对此进行调试。正如我所展示的,您提到的内容在标准的Symfony安装上是不可复制的,而Twig 2(或3)就是这样。您能分享更多细节吗,比如模板的内容?另外,您是否检查过是否为Twig配置了任何全局变量?