Php Twig关键字'services'的值始终为'true'`

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 我

我在Symfony中工作,试图将名为
$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配置了任何全局变量?