如何在Symfony2配置中添加包含值的数组?

时间:2013-08-05 07:56:41

标签: php symfony yaml

我想在配置文件(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"

我错过了什么?这甚至可能吗?

2 个答案:

答案 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');