2016-03-23 5 views
-1

私は健康情報システムを開発しています。 Yii2の私の最初のプロジェクト。しかし、私はある時点で問題を抱えています。たとえば、医者がログインした場合、私は彼に関連するメニュー項目を表示するだけで、看護師、薬剤師などと同じケースを表示したいと思っています。私は、ナビゲーションバーに表示されるメニュー項目を誰にログインさせたいのですか?これはmain.phpファイルの次のコードセグメントでレイアウトで実装できると思いますが、どういうわけかわかりません。助けてください。ログインする人に応じて表示するメニュー項目を決定する

$menuItems = [ 
     ['label' => 'Home', 'url' => ['/site/index']], 
    ]; 
    if (Yii::$app->user->isGuest) { 
     $menuItems[] = ['label' => 'Login', 'url' => ['/site/login']]; 
    } else { 
     $menuItems[] = '<li>' 
      . Html::beginForm(['/site/logout'], 'post') 
      . Html::submitButton(
       'Logout (' . Yii::$app->user->identity->username . ')', 
       ['class' => 'btn btn-link'] 
      ) 
      . Html::endForm() 
      . '</li>'; 
    } 

答えて

0

あなたはhttp://www.yiiframework.com/doc-2.0/guide-security-authorization.html#rbac

は、ユーザーのタイプごとに役割を作成し、そのオフメニューをフィルタリングし、RBACについて読む必要があります。

$menuItems = []; 
if (Yii::$app->user->can('doctor')) { 
    $menuItems = [['label' => 'Patients', 'url' => ...]]; 
} else if (Yii::$app->user->can('nurse')) { 
    $menuItems = [['label' => 'Medicines', 'url' => ...]]; 
} 
関連する問題