我想将其他参数{'id': '555'}
从树枝模板传递到$options-parameter
中的MenuBuilder.php
。
树枝看起来像:
...
{{ knp_menu_render('createSwitchButton', {'id': '555'} ) }}
...
service.yml
看起来像:
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 }
MenuBuilder.php
看起来像:
...
public function createSwitchButton(Request $request,array $options)
{
$menu = $this->factory->createItem('root');
$menu->addChild($options['id'], array('route' => 'login'));
...
return $menu;
}
但是:在Builder
中,$options['id']
未知。我认为service.yml
中的参数声明是错误的。
有人会帮助我吗?
答案 0 :(得分:3)
你没有提到KnpBundle的版本。在v2。*版本according to documentation中你可以这样做
{% set menuItem = knp_menu_get('TestProductBundle:Builder:mainMenu', [], {'some_option': 'my_value'}) %}
{{ knp_menu_render(menuItem) }}