4

我想将一个附加参数{'id': '555'}从 twig-template 传递$options-parameterMenuBuilder.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是错误的。

有人会帮助我吗?

4

1 回答 1

3

您没有提到 KnpBundle 的版本。在根据文档的v2.* 版本中,您可以这样做

{% set menuItem = knp_menu_get('TestProductBundle:Builder:mainMenu', [], {'some_option': 'my_value'}) %}

{{ knp_menu_render(menuItem) }}
于 2014-07-18T14:53:07.127 回答