How to change the “current” class to “active” in K

2020-02-28 05:49发布

问题:

I was wondering, what is the best way to change the "current" class to be "active" so Bootstrap will work correctly with it?

I thought about copying and overriding the knp_menu_html.twig but i think its not the best way...

Anyway better doing it?

回答1:

You can pass it like that:

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


回答2:

To apply default options in all your application, you can set the knp_menu.renderer.twig.options parameter like this:

// app/config/services.yml
parameters:
    knp_menu.renderer.twig.options:
        currentClass: active

Default options of the Knp\Menu\Renderer\TwigRenderer are:

    $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);