折りたたみ可能なメニューがあり、折りたたみ可能な部分の 1 つのエントリがルートにマップされているとします。
test/index
サイトの場所を次のように変更すると、折りたたみ可能なメニューが開いたままになり、内部のエントリがアクティブなものとしてマークされるようにするにはどうすればよいですか。
test/create
/ test/update
/test/detail
など
折りたたみ可能なメニューがあり、折りたたみ可能な部分の 1 つのエントリがルートにマップされているとします。
test/index
サイトの場所を次のように変更すると、折りたたみ可能なメニューが開いたままになり、内部のエントリがアクティブなものとしてマークされるようにするにはどうすればよいですか。
test/create
/ test/update
/test/detail
など
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)
それらを呼び出して非表示にすることです。私はこれを試していませんが、これもうまくいくはずです。