2017-10-08 8 views
-1

yii2-rbac을이 사이트 페이지에이어서 설치합니다 : https://github.com/dektrium/yii2-rbac/blob/master/docs/installation.md. 두 번째로 해. 처음은 내가 다, 그러나 나는 설정/web.php 파일에 썼다 :yii2-rbac 오류 설치 authManager 구성이 잘못되었습니다

'modules' => [ 
    'user' => [ 
     'class' => 'dektrium\user\Module', 
    ], 
    //'rbac' => 'dektrium\rbac\RbacWebModule', 
    'rbac' => 'dektrium\rbac\RbacConsoleModule', 

], 

나는 몰랐다 'RBAC'=> 'dektrium의 \ RBAC의 \의 RbacConsoleModule이'는 콘솔에 작성해야합니다. PHP (web.php에 없음).

'authManager' => [ 
     'class'  => 'yii\rbac\DbManager', 
     //'defaultRoles' => ['guest'], 
    ], 

` 내가 모두 설정 파일에 쓴 한이 코드 : web.php 및 console.php하지만 web.php에서 나는 'RBAC'=> 'dektrium의 \ RBAC의 \의 RbacConsoleModule'과에 썼다 console.php 필자는 그것을 작성하지는 않았지만 모두 작동했습니다 : yii2-rbac이 성공적으로 설치되었습니다. 그리고 모든 거래가 성공했습니다. 하지만 'rbac'=> 'dektrium \ rbac \ RbacConsoleModule'은 web.php에 잘못되었습니다. 웹 모듈이 아니라 콘솔 모듈입니다. 그런 다음 트랜잭션을 롤백하고 (마이그레이션/다운) composer.json "dektrium/yii2-rbac": "[email protected]"선언에서 제거하여 rbac을 제거했습니다. 모두 제거되었습니다. 두 번째로 rbac을 설치하기 시작했습니다.

'modules' => [ 
    'user' => [ 
     'class' => 'dektrium\user\Module', 
    ], 
    'rbac' => 'dektrium\rbac\RbacWebModule', 
    //'rbac' => 'dektrium\rbac\RbacConsoleModule', 

], 

및 console.php에 나는 썼다 : 작곡가 설치 후 나는 web.php에 쓴 한

'modules' => [ 

    'rbac' => 'dektrium\rbac\RbacConsoleModule', 

], 

이 yii2의 사이트가 뒤에 작동하지 않습니다! web.php "... RbacConsoleModule"에서 변경되었습니다. 사이트 작동. RbacWebModule과 함께 작동하지 않는 이유는 무엇입니까? 그런 다음 이전 롤백했던 트랜잭션을 적용하려고 시도했지만 오류가 발생했습니다. authManager 구성이 잘못되었습니다. enter image description here

어떻게해야합니까? 도와주세요. 내 영어를 위해 나를 ecscuse. 나는 러시아 출신이다.

내 console.php :

$config = [ 
'id' => 'basic-console', 
'basePath' => dirname(__DIR__), 
'bootstrap' => ['log'], 
'controllerNamespace' => 'app\commands', 
'components' => [ 
    'cache' => [ 
     'class' => 'yii\caching\FileCache', 
    ], 
    'log' => [ 
     'targets' => [ 
      [ 
       'class' => 'yii\log\FileTarget', 
       'levels' => ['error', 'warning'], 
      ], 
     ], 
    ], 
    'db' => $db, 

    'authManager' => [ 
     'class'  => 'yii\rbac\DbManager', 
     //'defaultRoles' => ['guest'], 
    ] 
], 

'modules' => [ 

    'rbac' => 'dektrium\rbac\RbacConsoleModule', 

], 

// ....

내 web.php : 모든

//This all in $component 

    'db' => require(__DIR__ . '/db.php'), 


    'authManager' => [ 
     'class'  => 'yii\rbac\DbManager', 
     //'defaultRoles' => ['guest'], 
    ], 

], 

'modules' => [ 
    'user' => [ 
     'class' => 'dektrium\user\Module', 
    ], 
    //'rbac' => 'dektrium\rbac\RbacWebModule', 
    'rbac' => 'dektrium\rbac\RbacConsoleModule', 

], 

답변

1

! 문제가 결정되었습니다. 모듈이 아닌 모듈에 authManager 섹션을 작성해야합니다.

'modules' => [ 
    'user' => [ 
     'class' => 'dektrium\user\Module', 
    ], 

    'authManager' => [ 
     'class'  => 'yii\rbac\DbManager', 
    //'defaultRoles' => ['guest'], 
    ] 

    //'rbac' => 'dektrium\rbac\RbacWebModule', 
    'rbac' => 'dektrium\rbac\RbacConsoleModule', 

]