gpt4 book ai didi

symfony - 使用 Symfony2 的配置类时,允许配置数组中存在额外的未定义选项

转载 作者:行者123 更新时间:2023-12-03 21:39:37 25 4
gpt4 key购买 nike

我正在尝试定义 Configuration目的。我已经成功定义了一个数组原型(prototype)节点(如 security.firewalls )。我的原型(prototype)数组有一个必需的元素,但如果需要,我想允许将任意参数添加到每个数组中。

我的问题是,如何允许将额外的未定义元素添加到每个原型(prototype)数组中?

这是我的配置:

acme_widget:
handlers:
handler_one:
service: handler.one.service
handler_two:
service: handler.two.service
extra_array:
- Extra 1
- Extra 2
extra_scalar: Extra 3

这是我的类(class) build 者:
    /**
* Generates the configuration tree.
*
* @return TreeBuilder
*/
public function getConfigTreeBuilder()
{
$treeBuilder = new TreeBuilder;
$rootNode = $treeBuilder->root('acme_widget');

$rootNode
->children()
->arrayNode('handlers')
->useAttributeAsKey('service')
->prototype('array')
->children()
->scalarNode('service')->isRequired()->end()
->booleanNode('enabled')->defaultTrue()->end()
->end()
->end()
->end()
->end()
;

return $treeBuilder;
}

我收到“InvalidConfigurationException:无法识别的选项”。

最佳答案

我只想添加一个变量(可以包含任何东西)节点“额外”:

->scalarNode('service')->isRequired()->end()
->booleanNode('enabled')->defaultTrue()->end()
->variableNode('extra')->end()

您的配置将如下所示:
acme_widget:
handlers:
handler_one:
service: handler.one.service
handler_two:
service: handler.two.service
extra:
array:
- Extra 1
- Extra 2
scalar: Extra 3

关于symfony - 使用 Symfony2 的配置类时,允许配置数组中存在额外的未定义选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12545323/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com