2017-10-08 113 views
-1

我在此站點頁面安裝yii2-rbac:https://github.com/dektrium/yii2-rbac/blob/master/docs/installation.md。 我第二次做。第一次我都做了,但我在config/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已經安裝成功。所有交易都已通過成功。但在web.php中'rbac'=>'dektrium \ rbac \ RbacConsoleModule'在我看來是錯誤的。它不是Web模塊,它是控制檯模塊。然後我進行了回滾事務(遷移/下移),並且通過從composer.json中刪除「dektrium/yii2-rbac」:「[email protected]」聲明,我已經刪除了rbac。全部被刪除。 比我第二次開始安裝rbac。作曲家安裝後,我在web.php也寫道:

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

], 

和console.php我已經寫了:

'modules' => [ 

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

], 

上yii2該網站後不它的工作!我改變了web.php「... RbacConsoleModule」。網站工作。爲什麼它不適用於RbacWebModule?然後我嘗試申請交易,以前我已經回滾過,但是引發錯誤:您的authManager配置不正確 enter image description here

我該怎麼辦?幫我。生我的英語。我來自俄羅斯。

我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', 

]