Как добавить arrayNodes без имен в Symfony TreeBuilder? - PullRequest
0 голосов
/ 30 сентября 2019

У меня есть следующая конфигурация построителя дерева:

private function addDiscountConfiguration(NodeBuilder $builder): void
{
    $builder
        ->arrayNode('discount')
            ->addDefaultsIfNotSet()
            ->children()
                ->arrayNode('matrix')
                    ->arrayPrototype()
                        ->children()
                            ->scalarNode('min')->end()
                            ->scalarNode('max')->end()
                        ->end()
                    ->end()
                ->end()
            ->end()
        ->end()
    ;
}

Однако, когда я сбрасываю конфигурацию в compilerPass, я получаю следующий результат:

dd($container->getParameter('config'));

array:1 [
  "discount" => array:1 [
    "matrix" => []
  ]
]

Таким образом, скалярные узлы отсутствуют.

Структура должна выглядеть следующим образом:

discount:
    matrix:
        0:
            min: 10
            max: 20
        1:
            min: 10
            max: 20

Поскольку у меня нет названия для 0 и 1, я не могу использовать arrayNode('xy') здесь.

Есть идеи, что я делаю не так? Может быть, что использовать вместо arrayPrototype()?

...