1

折りたたみ可能なメニューがあり、折りたたみ可能な部分の 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」が現在のルートに設定されます。

もう 1 つのアプローチは、通常どおりすべてのルートを照合し、setDisplay(false)それらを呼び出して非表示にすることです。私はこれを試していませんが、これもうまくいくはずです。

于 2016-02-17T10:19:19.787 に答える