我想在配置文件(config.yml)中添加一个简单的值列表。例如:
my_bundle:
columns: ["col1", "col2"]
将节点添加到配置解析器时,它只是失败:
$rootNode = $treeBuilder->root('my_bundle');
$rootNode->arrayNode('columns')->children()->end();
这是错误:
InvalidConfigurationException: Unrecognized options "0, 1" under "my_bundle.columns"
我错过了什么?这甚至可能吗?
答案 0 :(得分:39)
如果你想要实现这样的节点,只需执行:
$rootNode
->children()
->arrayNode('columns')
->prototype('scalar')
->end()
->end()
->end()
;
答案 1 :(得分:0)
我认为你缺少 YaML不是一种标记语言,它甚至不是 langauge (它是一个数据序列化标准),所以它没有'知道任何语言结构,比如数组。它的主要“工具”表示数据位之间的分组和关系是空格,冒号和破折号。
来自symfony documentation page of the YaML format:
my_bundle:
columns:
- col1
- col2
我从这一部分收集到:
YAML文件很少用于描述简单的标量。大多数时候,它描述了一个集合。集合可以是元素的序列或映射。序列和映射都转换为PHP数组。
序列使用短划线后跟空格:
-
PHP
-
Perl
-
Python以前的YAML文件等同于以下PHP代码:
array('PHP', 'Perl', 'Python');