首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >KnpMenuBundle,即使对子操作也保持主菜单活动。

KnpMenuBundle,即使对子操作也保持主菜单活动。
EN

Stack Overflow用户
提问于 2014-01-17 14:46:34
回答 1查看 2.3K关注 0票数 2

我的问题是与以下几点有关,这是否“适当”的方法,还是有更好的解决办法?

Symfony2 KnpMenuBundle: set active a menu item even when its not on that menu

这是我目前的代码:

代码语言:javascript
复制
public function mainMenu(FactoryInterface $factory, array $options)
{
    $menu = $factory->createItem('root');
    $menu->setChildrenAttributes(array('class' => 'nav navbar-nav'));
    $menu->addChild('Home',
        array('route' => 'home'
    ));
    $menu->addChild('Producers',
        array(
        'route' => 'producers_show'
    ));
    $menu->addChild('Ships',
        array(
            'route' => 'ships_show'
        ));

    /* not working */
       $request = $this->container->get('request');
       $routeName = $request->get('_route');
       switch ($routeName)
       {

           case 'producer_create':
           case 'ship_create':
                 $menu->setCurrent(true);
           break;
       }

    return $menu;
}

呈现的HTML对于"ship/create“的路线如下所示

代码语言:javascript
复制
<ul class="nav navbar-nav">
    <li class="first">        
        <a href="/app_dev.php/">Home</a>        
    </li>
    <li>        
         <a href="/app_dev.php/producers">Producers</a>        
    </li>
    <li class="last">        
         <a href="/app_dev.php/ships">Ships</a>        
    </li>
</ul>

正如您所看到的,没有任何设置为'active‘,我是否必须添加诸如之类的子操作到菜单中,并隐藏它们?请问我如何解决这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-18 08:43:09

代码的问题是每次都将根$menu项设置为current。

代码语言:javascript
复制
switch (true)
{
    case preg_match('/^producer(s)?_/', $routeName):
        // setting Producers as the current
        $menu->getChild('Producers')->setCurrent(true);
        break;

    case preg_match('/^ship(s)?_/', $routeName):
        // setting Ships as the current
        $menu->getChild('Ships')->setCurrent(true);
        break;

    default:
        $menu->setCurrent(true);
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21188641

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档