Массив процессов Symfony Tree Builder

0

Я хочу создать url в своем приложении из параметров конфигурации. У меня есть следующая конфигурация, которую я обрабатываю:

link:
        route_name: article
        route_params: {id: 1}

и моя конфигурация:

->arrayNode('link')
    ->beforeNormalization()
        ->ifString()
        ->then(function ($v) { return [ 'direct' => $v]; })
    ->end()
    ->children()
        ->scalarNode('route_name')->end()
        ->arrayNode('route_params')->end()
        ->scalarNode('direct')->end()
    ->end()
->end()

Я создаю URL:

$this->router->generate($this->config['link']['route_name'],
            $this->config['link']['route_params']);

Я не знаю, как обрабатывать массив с помощью route_params. Количество и имена параметров будут разными в каждом маршруте, поэтому я не могу просто сделать:

->arrayNode('route_params')
    ->scalarNode('id')->end()
->end()

Я получаю эту ошибку сейчас:

Непризнанный вариант "id" в разделе "link.route_params"

Теги:

1 ответ

1
Лучший ответ

Попробуйте что-то вроде этого

   ->arrayNode('route_params')
        ->useAttributeAsKey('name')
        ->prototype('scalar')->end()
    ->end()

Ещё вопросы

Сообщество Overcoder
Наверх
Меню