1

假设我有一个可折叠菜单,其中可折叠部分中的一个条目映射到路线:

test/index

如果我将站点位置更改为可以说:

test/create//等test/update_test/detail

4

1 回答 1

0

在您的 MenuBuilder 中,您可以将这些路由与开关匹配并调用setCurrent()您想要成为当前的项目。例如:

// The MenuBuilder must have access to the container
$request = $this->container->get('request');
switch ($request->get('_route'))
{
    case 'route_create':
    case 'route_update':
        $menu->getChild('Index')->setCurrent(true);
        break;
}

如果 'route_create' 或 'route_update' 是当前路由,这会将 MenuItem 'Index' 设置为当前路由。

另一种方法可能是像往常一样匹配所有路由,然后调用setDisplay(false)它们隐藏它们。我没有尝试过,但我认为这也应该有效。

于 2016-02-17T10:19:19.787 回答