3

これは同様の問題のようですが、私にはうまくいきませんでした。答えはそこにあるに違いないと感じています。これは珍しい問題ではありませんが、正しい検索用語を使用していません。

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) を参照すると、アクティブなメニューもブレッドクラムもありません。問題は、これらの他のページのコントローラー/アクションが、ルートで指定されたデフォルトと同じではないことです。

ルート マッチを成功させてメニューを有効にするにはどうすればよいですか?

4

1 に答える 1

-3

こんなもの入れて

  'invokables' => array(
        'Application\Controller\Platform'       => 'Application\Controller\PlatformController')

このように上記のデフォルトを置き換えます

 'defaults' => array(
                'controller' => 'Application\Controller\Platform',
                'action' => 'index',
            ),

私の場合、アプリケーションはモジュール名です

于 2014-06-05T12:50:21.317 に答える