【发布时间】:2019-07-11 15:49:34
【问题描述】:
我有一个需要布尔参数的(私有)包:
$rootNode
->addDefaultsIfNotSet()
->children()
->booleanNode('property_cache_enabled')->defaultTrue()->end()
->end()
当我希望它解析为 kernel.debug 时,它会抛出异常:
路径“rvlt_digital_symfony_api.property_cache_enabled”的类型无效。预期为布尔值,但得到字符串。
这是配置的相关部分:
rvlt_digital_symfony_api:
property_cache_enabled: '%kernel.debug%'
如何解决?当我搜索这个问题时,我只找到了与环境变量转换相关的东西;这没有帮助,因为这不是环境变量。
【问题讨论】:
-
有趣。没有时间制作测试用例,但我认为如果您在配置树中使用 defaultValue('%kernel.debug%') ,那么您将获得所需的结果。
-
如果您查看框架包的配置,您可以看到调试标志被注入到构造函数中。然后各个节点使用defaultValue($this->debug)
-
@Cerad 谢谢,但这并不能解决它,真正的值是正确的默认值,我需要它从配置中解决。目前,我通过在具有
true而默认配置具有false的dev 目录中创建一个单独的配置来解决它。