我正在使用TreeBuilder
为我的Bundle加载配置。该数据用于angularJs扩展。
现在即使我使数组可选并且不在由TreeBuilder
解析的config.yaml中定义它,返回的结果在其集合中具有所述数组的键 - 这导致angularJs崩溃。
示例Treebuilder:
$rootNode = $treeBuilder->root('acme');
$rootNode
->children()
->scalarNode('type')->end()
->arrayNode('foo')
->children()
->scalarNode('a1')->end()
->scalarNode('a2')->end()
->end()
->end()
->arrayNode('bar')
->children()
->scalarNode('b1')->end()
->scalarNode('b2')->end()
->end()
->end()
->end()
->end();
示例config.yaml
acme:
type: "you"
bar:
b1: "get"
b2: "it"
示例结果:
{type: "you", foo: {}, bar: {b1: "get", b1: "it"}}
我需要的结果:
{type: "you", bar: {b1: "get", b1: "it"}}
我的config.yaml中没有定义foo
部分,但我无法让TreeBuilder不将它放在输出中。
显然结构要复杂得多,我考虑解析生成的数组,并使用unset
删除某些空数组,这是一个肮脏的解决方案。