我在Symfony 3.5项目的config.yml
文件中有这个配置:
my_config:
token: mHSHlSHl-QqSHlX-SHlQqShzO2ibzGnsNk-Q
username: test
development:
developers_id: [130]
maintenance:
enable: true
text: "text of text"
我有一个包在我的configuration.php
文件中解析此配置。在bundle依赖注入中我有这个代码:
$treeBuilder = new TreeBuilder();
$rootNode = $treeBuilder->root('my_bundle');
$rootNode->children()
->scalarNode("username")
->end()
->scalarNode("token")
->isRequired()
->end()
->arrayNode('development')
->children()
->booleanNode('send_log')
->defaultFalse()
->end()
->arrayNode('developers_id')
->prototype('scalar')
->end()
->arrayNode('maintenance')
->children()
->booleanNode('enable')
->defaultFalse()
->end()
->scalarNode('text')
->defaultValue('default text')
->end()
->end()
->end()
->end()
->end()
->end();
return $treeBuilder;
当我运行此代码时,我收到此错误:
尝试调用类的名为“arrayNode”的未定义方法 “的Symfony \元器件\配置\定义\生成器\ ArrayNodeDefinition”。
我该怎么办?
答案 0 :(得分:1)
我收到此错误,因为在->prototype('scalar')
我没有写->end()
之后,我添加->end()
并解决了我的问题
正确的语法是这样的:
->arrayNode('developers_id')
->prototype('scalar')
->end()
->end()