これは同様の問題のようですが、私にはうまくいきませんでした。答えはそこにあるに違いないと感じています。これは珍しい問題ではありませんが、正しい検索用語を使用していません。
ZF2: zend ナビゲーションの子ルートのアクティブ ブランチ。どのように?
ここに私が定義したルートがあります:
'router' => array(
'routes' => array(
'platform' => array(
'type' => 'segment',
'options' => array(
'route' => '/platform[/:controller/:region/:id[/:action]]',
'constraints' => array(
'controller' => '[a-zA-Z][a-zA-Z0-9_-]*',
'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
'region' => '[0-9a-z]{2,4}',
'id' => '[0-9a-z-]+',
),
'defaults' => array(
'controller' => 'platform',
'action' => 'index',
),
),
),
),
),
そして、ここに私のナビゲーションがあります:
'navigation' => array(
'default' => array(
array(
'label' => 'Home',
'route' => 'home',
),
array(
'label' => 'Account',
'route' => 'zfcuser',
'pages' => array(
array(
'label' => 'Dashboard',
'route' => 'zfcuser',
),
array(
'label' => 'Sign In',
'route' => 'zfcuser/login',
),
array(
'label' => 'Sign Out',
'route' => 'zfcuser/logout',
),
array(
'label' => 'Register',
'route' => 'zfcuser/register',
),
),
),
array(
'label' => 'Platform v2 BETA',
'route' => 'platform',
),
),
),
次のように、レイアウトのすべてのページにトップレベルのメニューを表示します。
<div class="nav-collapse collapse">
<?php echo $this->navigation('navigation')
->menu()
->setMinDepth(0)
->setMaxDepth(0)
->setUlClass('nav')
->render(); ?>
</div>
ナビゲーションが正しく表示され、ホームと zfcuser ルートに対して有効なセクションが正しく表示されます。私が問題を抱えているのはホーム ルートです。メニューに移動する/platform
と、アクティブになります。ただし、モジュール内の他のページ (例: /platform/pendulum/na/af455e
) を参照すると、アクティブなメニューもブレッドクラムもありません。問題は、これらの他のページのコントローラー/アクションが、ルートで指定されたデフォルトと同じではないことです。
ルート マッチを成功させてメニューを有効にするにはどうすればよいですか?