允许布尔节点数组具有随机键以及 Symfony 配置和默认值

问题描述 投票:0回答:1

我想实现如下的配置结构:

app:
    integrations:
        some: true
        random: true
        options: true
        user_can_make_these_up: true

我已经添加了一些默认值:

mykey: true
myotherkey: false

所以在这种情况下编译的配置应该是:

[
    mykey => true,
    myotherkey => false,
    some => true,
    random => true,
    options => true,
    user_can_make_these_up => true,
]

我尝试了以下方法:

$rootNode
    ->children()
        ->arrayNode('integrations')
            ->ignoreExtraKeys()
            ->addDefaultsIfNotSet()
            ->children()
                ->booleanNode('mykey')->defaultTrue()->end()
            ->end()
        ->end()
    ->end();

但是随后我收到错误““app”下无法识别的选项“mykey”。可用选项是“集成”。”

我做错了什么?

php symfony configuration config
1个回答
0
投票

根据错误消息,您已经定义了以下配置(在项目中的某个位置):

app:
   mykey: false

错误消息

Unrecognized option "mykey" under "app"
只能在上述配置中出现。您正在使用
mykey
正下方的选项
app
,该选项不可用。仅可用(直接在
app
下)是
integrations

它应该看起来像这样:

app:
   integrations:
      mykey: false

例如。提供的“配置”(在您的问题和此线程中)与您在项目中使用的不同。

MIND:请记住,只要您有多个具有相同键的

.yaml
配置,您就可以覆盖以前的配置。因此,每当最后加载后一个 .yaml 文件时,以下示例 可能
 会导致相同的错误:

> /config/packages/services.yaml
app:
   integrations:
      mykey: false
> /config/packages/test.yaml
app:
   myKey: false
© www.soinside.com 2019 - 2024. All rights reserved.