2016-08-12 5 views
0

私はこのナビゲーション設定を持っています。ZF2のナビゲーションがページと一致するのを防ぐにはどうすればよいですか?

// Navigation 
'navigation' => array(
    'default' => array(
     array(
      'label' => '<i class="fa fa-user"></i> Users', 
      'route' => 'cobalt/default', 
      'controller' => 'user', 
      'pages' => array(
       array(
        'label' => 'New User', 
        'controller' => 'user', 
        'action' => 'add', 
       ), 
       array(
        'label' => 'Edit', 
        'controller' => 'user', 
        'action' => 'edit', 
       ), 
       array(
        'label' => 'Delete', 
        'controller' => 'user', 
        'action' => 'delete', 
       ), 
      ), 
     ), 
     array(
      'label' => '<i class="fa fa-cogs"></i> Admin', 
      'route' => 'admin', 
      'pages' => array(
       // Support Technicians. 
       array(
        'label' => 'Support Technicians', 
        'controller' => 'user', 
        'action' => 'technicians', 
       ), 
      ), 
     ), 
    ), 
), 

私は、ユーザ/技術者に移動すると、これは正しくように私のブレッドクラムをレンダリングナビゲーションでサポート技術者のページにマッチします。

しかし
Admin > Support Techicians 

このルートは、ユーザーのコントローラと一致して、両方の管理者とユーザーのページは私の側のナビゲーションでアクティブに設定されているため。

ユーザーページがアクティブにならないようにする方法はありますか?

+0

試した$ this-> navigation( 'navigation') - > findOneByController( 'user') - > setActive(false);技術者のための私のビューのスクリプトでは、ユーザーページはまだアクティブとしてレンダリング – srayner

答えて

0

ユーザページのアクションを 'index'に設定する必要がありました。これは、アクションがインデックスであるか、子ページがアクティブである場合にのみ、アクティブとして一致します。

array(
     'label' => '<i class="fa fa-user"></i> Users', 
     'route' => 'cobalt/default', 
     'controller' => 'user', 
     'action' => 'index' // <-- fix 
     'pages' => array(
関連する問題