Я хочу создать 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"
Попробуйте что-то вроде этого
->arrayNode('route_params')
->useAttributeAsKey('name')
->prototype('scalar')->end()
->end()