Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Symfony 如何更改;“当前”;类别改为;主动的;在KNPMenuBundle_Symfony_Knpmenubundle - Fatal编程技术网

Symfony 如何更改;“当前”;类别改为;主动的;在KNPMenuBundle

Symfony 如何更改;“当前”;类别改为;主动的;在KNPMenuBundle,symfony,knpmenubundle,Symfony,Knpmenubundle,我想知道,什么是将“当前”类更改为“活动”的最佳方法,以便引导程序能够正确地使用它 我曾想过复制和覆盖knp_menu_html.twig,但我认为这不是最好的方法 不管怎样,还是做得更好 你可以这样传递: {{ knp_menu_render('AcmeDemoBundle:Builder:mainMenu', {'currentClass': 'active'}) }} 要在所有应用程序中应用默认选项,可以如下设置knp\u menu.renderer.twig.options参数: //

我想知道,什么是将“当前”类更改为“活动”的最佳方法,以便引导程序能够正确地使用它

我曾想过复制和覆盖knp_menu_html.twig,但我认为这不是最好的方法


不管怎样,还是做得更好

你可以这样传递:

{{ knp_menu_render('AcmeDemoBundle:Builder:mainMenu', {'currentClass': 'active'}) }}

要在所有应用程序中应用默认选项,可以如下设置
knp\u menu.renderer.twig.options
参数:

// app/config/services.yml
parameters:
    knp_menu.renderer.twig.options:
        currentClass: active
Knp\Menu\Renderer\twigrender
的默认选项为:

    $this->defaultOptions = array_merge(array(
        'depth' => null,
        'matchingDepth' => null,
        'currentAsLink' => true,
        'currentClass' => 'current',
        'ancestorClass' => 'current_ancestor',
        'firstClass' => 'first',
        'lastClass' => 'last',
        'template' => $template,
        'compressed' => false,
        'allow_safe_labels' => false,
        'clear_matcher' => true,
        'leaf_class' => null,
        'branch_class' => null,
    ), $defaultOptions);

可以在MenuBuilder类中设置这些选项吗?不能直接设置。事件如果在菜单生成器中插入“knp_menu.renderer.twig”服务(上面的“knp\menu\renderer\twigrender”类),则默认选项没有变体。通过使用参数“knp_menu.renderer.twig.class”覆盖renderer类,您最终可以自己实现一些变体