Passing Parameters to KnpMenuBundle-MenuBuilder (registered as service)
knpmenubundle, php, symfony, twig
Solution
You didn't mention a version of KnpBundle. In v2.* version according to documentation you can do like this
{% set menuItem = knp_menu_get('TestProductBundle:Builder:mainMenu', [], {'some_option': 'my_value'}) %}
{{ knp_menu_render(menuItem) }}
Problem
I want to pass an additional parameter `{'id': '555'}` from a twig-template to the `$options-parameter` in the `MenuBuilder.php`. The twig looks like: ``` ... {{ knp_menu_render('createSwitchButton', {'id': '555'} ) }} ... ``` The `service.yml` looks like: ``` RochPartyplaner.menu_builder: class: RochPartyplaner\PartyBundle\Menu\MenuBuilder arguments: ["@knp_menu.factory"] RochPartyplaner.menu.createSwitchButton: class: Knp\Menu\MenuItem factory_service: RochPartyplaner.menu_builder factory_method: createSwitchButton arguments: ["@request", []] scope: request tags: - { name: knp_menu.menu, alias: createSwitchButton } ``` And the `MenuBuilder.php` looks like: ``` ... public function createSwitchButton(Request $request,array $options) { $menu = $this->factory->createItem('root'); $menu->addChild($options['id'], array('route' => 'login')); ... return $menu; } ``` But: in the `Builder`, `$options['id']` is unknown. I think the arguments-statement in the `service.yml` is wrong. Would somebody help me?