Twig 关键字“services”的值始终为“true”
Twig keyword `services` always has the value `true`
我在 Symfony 工作,并试图将一个名为 $services
的变量传递到我的 twig 模板中。自然地,我也会引用同名的twig中的变量。
$services = new ArrayCollection(); // Some array
$this->render('template.html.twig', [
'services' => $services
]);
然而,出于某种原因,services
始终是 true
的布尔值。这不是我要传递给它的 ArrayCollection
。
我已经检查了我的 twig 配置,看是否有任何可以将自身分配为全局变量的东西,但一切都检查过了,而且我似乎找不到任何关于 services
是保留关键字的文档。
FWIW,我将 twig 变量名称从 services
重命名为 foo
以进行完整性检查,并且 $services
变量的行为符合预期,因此它肯定与分配twig 中单词 services
的变量。
我目前是 运行 Twig 2.14.3
除了检查是否设置了任何全局变量之外,是否还有其他途径可以尝试找到定义此变量的原因和位置?
经过几个小时的故障排除,这似乎是一个非常愚蠢的答案。
我检查过:
- 我的
twig.yaml
配置中的全局变量
- 确保任何自定义 twig 扩展未绑定到
service
- 已检查任何绑定服务是否未创建名称为
service
的任何函数
- 确保我没有在我的任何模板中设置
service
到我的基本模板
似乎什么都没有,然后我开始转向一些注册了一些 twig 模板的第三方包。
结果发现一个包有一个模板,里面写着 {% set services = ... %}
,它包含在我的基本模板中。
+1 @yivi 引起了我的注意 debug:twig
,因为知道什么与 twig 绑定非常有用。正是这些信息让我知道了捆绑包绑定到的任何命名空间,并提供了一些额外的地方来开始寻找。
我在 Symfony 工作,并试图将一个名为 $services
的变量传递到我的 twig 模板中。自然地,我也会引用同名的twig中的变量。
$services = new ArrayCollection(); // Some array
$this->render('template.html.twig', [
'services' => $services
]);
然而,出于某种原因,services
始终是 true
的布尔值。这不是我要传递给它的 ArrayCollection
。
我已经检查了我的 twig 配置,看是否有任何可以将自身分配为全局变量的东西,但一切都检查过了,而且我似乎找不到任何关于 services
是保留关键字的文档。
FWIW,我将 twig 变量名称从 services
重命名为 foo
以进行完整性检查,并且 $services
变量的行为符合预期,因此它肯定与分配twig 中单词 services
的变量。
我目前是 运行 Twig 2.14.3
除了检查是否设置了任何全局变量之外,是否还有其他途径可以尝试找到定义此变量的原因和位置?
经过几个小时的故障排除,这似乎是一个非常愚蠢的答案。
我检查过:
- 我的
twig.yaml
配置中的全局变量 - 确保任何自定义 twig 扩展未绑定到
service
- 已检查任何绑定服务是否未创建名称为
service
的任何函数
- 确保我没有在我的任何模板中设置
service
到我的基本模板
似乎什么都没有,然后我开始转向一些注册了一些 twig 模板的第三方包。
结果发现一个包有一个模板,里面写着 {% set services = ... %}
,它包含在我的基本模板中。
+1 @yivi 引起了我的注意 debug:twig
,因为知道什么与 twig 绑定非常有用。正是这些信息让我知道了捆绑包绑定到的任何命名空间,并提供了一些额外的地方来开始寻找。