小编Luc*_*cas的帖子

Symfony 包配置数组节点默认值合并

我的 Symfony4 捆绑配置有问题。我有一个配置类:

$rootNode
        ->children()
            ->arrayNode('mapping')
                ->useAttributeAsKey('code')
                ->prototype('scalar')->end()
                ->defaultValue(['default' => 'test'])
            ->end()
            .....
        ->end();
Run Code Online (Sandbox Code Playgroud)

这将返回默认配置,例如:

array(1) {
   ["default"]=> string(4) "test"
}
Run Code Online (Sandbox Code Playgroud)

但是当我添加配置文件时:

bundle:
    mapping:
        test: newvalue
        test2: newvalue2
Run Code Online (Sandbox Code Playgroud)

我得到一个配置:

array(2) {
   ["test"]=> string(8) "newvalue"
   ["test2"]=> string(9) "newvalue2"
}
Run Code Online (Sandbox Code Playgroud)

但我希望合并这两个配置以获得:

array(3) {
   ["default"]=> string(4) "test"
   ["test"]=> string(8) "newvalue"
   ["test2"]=> string(9) "newvalue2"
}
Run Code Online (Sandbox Code Playgroud)

如何设置此默认值以与提供的配置合并?当然,我想让“默认”配置被覆盖,但默认被合并。

我在文档上找不到任何解决方案https://symfony.com/doc/current/components/config/definition.html#array-node-options

请帮忙 :)

php configuration bundle symfony symfony4

1
推荐指数
1
解决办法
2690
查看次数

标签 统计

bundle ×1

configuration ×1

php ×1

symfony ×1

symfony4 ×1