Symfony配置useAttributeAsKey和索引数组

时间:2014-10-29 04:04:55

标签: php symfony configuration

我想创建一个Symfony Configuration类,它接受以下YAML配置:

bundle_name:
    section:
        attributeAsKey:
            - entry 1
            - entry 2

然后会产生如下数组:

array(
   'section' => array(
      'attributeAsKey' => array(
          'entry1',
          'entry2'
       )
   )
)

我尝试了以下方法,但它不起作用。我做错了什么?

->arrayNode('section')
    ->useAttributeAsKey('attributeAsKey')
    ->prototype('array')
        ->children()
            ->arrayNode('entries')
                ->prototype('scalar')->end()
            ->end()
        ->end()
    ->end()
->end()

1 个答案:

答案 0 :(得分:0)

这就是我最后做的事情......

            ->arrayNode('formats')
                ->useAttributeAsKey('format', true)
                ->prototype('array')
                ->beforeNormalization()
                    ->ifTrue(function ($v) { return is_array($v) && !isset($v['mimeTypes']); })
                    ->then(function ($v) { return array('mimeTypes' => $v); })
                ->end()
                    ->children()
                        ->arrayNode('mimeTypes')
                            ->prototype('scalar')->end()
                        ->end()
                    ->end()
                ->end()
            ->end()

返回的数组有' mimeTypes' key,buit允许我定义这样的配置:

formats:
    json:
        - application/json
        - application/x-json
        - application/vnd.lemon+json

除了使用' mimeTypes'键。