2017-11-08 10 views
0

저는 yii2 2 관리자를 설치했습니다. 저는 rbac을 만들고 있었고, 좋은 비디오 튜토리얼을 따랐습니다. everyhting 잘 작동하지만 내 main.php에서 로그 아웃이 나타나지 않습니다. 여기 내 main.php입니다, 어떻게 고칠 수 있습니까? 나는 내 실수를 찾기 위해 많은 시도했지만 심지어 내 컨트롤러 내 로그 아웃이 apprearing되고, 잘 작동, filte없이, 그러나, 좋아 보이는 : 당신이 메뉴 항목을 제거하는 \mdm\admin\components\Helper::filter($menuItems)을 사용하고yii2 rbac의 로그 아웃이 나타나지 않습니다.

echo Nav::widget([ 
     'options' => ['class' => 'navbar-nav navbar-right'], 
     'items' => Helper::filter($menuItems), 

    ]); 


<?php 

/* @var $this \yii\web\View */ 
/* @var $content string */ 

use yii\helpers\Html; 
use yii\bootstrap\Nav; 
use yii\bootstrap\NavBar; 
use yii\widgets\Breadcrumbs; 
use app\assets\AppAsset; 
use mdm\admin\components\Helper; 

AppAsset::register($this); 
?> 
<?php $this->beginPage() ?> 
<!DOCTYPE html> 
<html lang="<?= Yii::$app->language ?>"> 
<head> 
    <meta charset="<?= Yii::$app->charset ?>"> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
    <?= Html::csrfMetaTags() ?> 
    <title><?= Html::encode($this->title) ?></title> 
    <?php $this->head() ?> 
</head> 
<body> 
<?php $this->beginBody() ?> 

<div class="wrap"> 


    <?php 

$menuItems = [ 
      ['label' => 'bosh sahifa', 'url' => ['/admin/default/index']], 
      ['label' => 'postlarimiz', 'url' => ['/admin/post/index']], 
      ['label' => 'user management', 'url' => ['/rbac/default/index']], 
      Yii::$app->user->isGuest ? (
       ['label' => 'Login', 'url' => ['/site/login']] 
      ) : (
       '<li>' 
       . Html::beginForm(['/site/logout'], 'post') 
       . Html::submitButton(
        'Logout (' . Yii::$app->user->identity->username . ')', 
        ['class' => 'btn btn-link logout'] 
       ) 
       . Html::endForm() 
       . '</li>' 
      ) 

     ]; 

    NavBar::begin([ 
     'brandLabel' => 'My Company', 
     'brandUrl' => Yii::$app->homeUrl, 
     'options' => [ 
      'class' => 'navbar-inverse navbar-fixed-top', 
     ], 
    ]); 
    echo Nav::widget([ 
     'options' => ['class' => 'navbar-nav navbar-right'], 
     'items' => Helper::filter($menuItems), 

    ]); 
    NavBar::end(); 
    ?> 

    <div class="container"> 
     <?= Breadcrumbs::widget([ 
      'links' => isset($this->params['breadcrumbs']) ? $this->params['breadcrumbs'] : [], 
     ]) ?> 
     <?= $content ?> 
    </div> 
</div> 

<footer class="footer"> 
    <div class="container"> 

    </div> 
</footer> 

<?php $this->endBody() ?> 
</body> 
</html> 
<?php $this->endPage() ?> 
+0

"filte"란 무엇입니까? – pat

답변

1

을 그 전류를 사용자가 액세스 할 수없는 (이 로그인을 포함하고 작업을 로그 아웃), 그래서 하나는 이러한 작업

'as access'   => [ 
    'class'  => 'mdm\admin\components\AccessControl', 
    'allowActions' => [ 
     'site/logout', // or 'site/*' if you prefer 
    ] 
], 

에 대한 RBAC 예외를 추가하거나
docs를 참조하는 경로에 대한 액세스 권한이있는 관리자 모듈에서 게스트 역할을 만들 필요가 구성 예

+0

대답을 주셔서 감사합니다. 제발, 제발 보여줄 수 있습니다. 어떻게하면 제발, 제발 추가 할 수 있습니다. 'access'=> [ 'class'=> 'mdm \ admin \ components \ AccessControl', 'allowActions'=> [ ' 사이트/* ', '사이트/로그 아웃 ' 'rbac/* ', 그리고 도움이되지 않았습니다 –

+0

귀하의 모든 경로가 rbac 모듈에 추가 되었습니까? ('/ rbac/route/index'에 - rbac이 당신의 모듈 이름이라면, 당신은 어떤 configs도 제기하지 않았습니다) – csminb